我在MongoDB数据库的用户集中得到了这样的数据
{
"_id" : ObjectId("5890a9598c36d45435d521c7"),
"name" : "Test Testsson",
"email": "test@test.com,"
"tasks": [{
"_id" : ObjectId("5890a9598c36d45435d521ce"),
"sessionid" : 0,
"value" : 7,
"actions" : [
{
"taskid" : 17,
"time" : 0.85302734375,
"_id" : ObjectId("5890a9598c36d45435d521d6")
},
{
"taskid" : 5,
"time" : 1.39321899414063,
"_id" : ObjectId("5890a9598c36d45435d521d5")
}
]
}, {
"_id" : ObjectId("5890a9598c36d45435d521qw"),
"sessionid" : 1,
"value" : 7,
"actions" : [
{
"taskid" : 1,
"time" : 0.85302734375,
"_id" : ObjectId("5890a9598c36d45435d521zx")
},
{
"taskid" : 5,
"time" : 1.39321899414063,
"_id" : ObjectId("5890a9598c36d45435d521yt")
}
]
}
]
}
我将数据发布到我的节点/ mongoose应用程序,我想更新任务数组。
我对/ api / user / task / 5890a9598c36d45435d521c7发帖 身体:
{
"sessionid" : 2,
"value" : 12,
"actions" : [
{
"taskid" : 4,
"time" : 0.85302734375,
"_id" : ObjectId("5890a9598c36d45435d521zx")
},
{
"taskid" : 9,
"time" : 1.39321899414063,
"_id" : ObjectId("5890a9598c36d45435d521yt")
}
]
}
我可以使用此查询找到我的任务:
User.findOne({
_id: ObjectId('58909be40c50e2d0345e916e'),
"tasks.sessionid": 0},
function(...){/* blah blah */});
但是如何更新任务数组中的数据?
我尝试使用update和findAndModify,但无法按预期工作。任何人都有任何想法如何做到这一点。