J'ai le code suivant qui effectue des mises à jour de base sur un document Mongo. Le problème est qu'après avoir exécuté la route /stop/:id
, le champ startDate
est supprimé du document incorporé. Comment puis-je m'assurer qu'il reste là après que les champs endDate
et started
ont été mis à jour?Mettre à jour le champ de document Mongo incorporé sans affecter d'autres champs
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);
});
});
Cela ne va pas fonctionner. $ addToSet semble être pour ajouter des éléments à un tableau. Dans mon cas, j'essaye d'ajouter/changer des éléments sur un document incorporé. – MadPhysicist