Mongoでドキュメントを更新するためのAPIには、次のコードがあります。 collection.update
を使用してセクションに値を挿入し、別のcollection.update
を使用してこれらの値をドキュメント内の配列にプッシュします。同じ照会で値が設定されたMongoの更新レコード
しかし、私はこのコードを実行すると、をevents.eventTime
とevents.endDate = null
に入れ続けます。これを正しく変更するにはどうすればよいですか?つまり、私は最初にruntime.
に値を挿入し、次にそれらを使用してevents
配列にプッシュします。
router.get('/stop/:id', function(req,res){
var collection = db.get('Activity');
//Important to use findOne here to get an object back instead of an array
collection.findOne({_id : req.params.id }, function(err, activity){
if (err) throw err;
res.json(activity);
//console.log(activity);
collection.update({
_id: activity._id
},
{
$set: {
"runtime.started": false,
"runtime.endDate": new Date()
}
},
function(err, activity){
if (err) throw err;
//res.json(activity);
console.log(activity);
}
);
collection.update({
_id: activity._id
},
{
$push: {events: {
eventTime: ((activity.runtime.endDate - activity.runtime.startDate)/1000),
startDate: activity.runtime.startDate,
endDate: activity.runtime.endDate
}
},
},
function(err, activity){
if (err) throw err;
//res.json(activity);
console.log(activity);
}
);
});
});
に更新コールの両方をマージしようとすることができますか? – abdulbarik
添付の画像を参照してください。 – MadPhysicist
あなたは減算が効果的でしょうか? – abdulbarik