Ich habe den folgenden Code, der grundlegende Updates für ein Mongo-Dokument ausführt. Das Problem ist, dass nach dem Ausführen der /stop/:id
Route das Feld startDate
aus dem eingebetteten Dokument gelöscht wird. Wie kann ich sicherstellen, dass es dort bleibt, nachdem die Felder endDate
und started
aktualisiert wurden?Aktualisieren Sie das eingebettete Mongo-Dokumentfeld, ohne andere Felder zu beeinträchtigen
router.get('/start/:id', function(req,res){
var collection = db.get('Activity');
collection.update({
_id: req.params.id
},
{
$set: {
"runtime": {
started: true,
startDate: new Date(),
endDate: null
}
}
}, function(err, activity){
if (err) throw err;
res.json(activity);
});
});
router.get('/stop/:id', function(req,res){
var collection = db.get('Activity');
collection.update({
_id: req.params.id
},
{
$set: {
"runtime.started": false,
"runtime.endDate": new Date()
}
}, function(err, activity){
if (err) throw err;
res.json(activity);
});
});
Das wird nicht funktionieren. $ addToSet scheint für das Hinzufügen von Elementen zu einem Array zu sein. In meinem Fall versuche ich Elemente in einem eingebetteten Dokument hinzuzufügen/zu ändern. – MadPhysicist