【发布时间】:2018-02-28 14:23:18
【问题描述】:
我有一个使用 Mongoose 的 Node/Express API,我正在尝试更新多个文档中的子文档。
基本上,我有一个用户的个人资料有多个电话号码,他们可以与其他联系人共享。
每个联系人都有一个 profile.contacts[] 部分,该部分具有 profile.contacts.phones[] 部分。
当与其他用户共享他/她的电话号码的主要用户更改了他/她的号码时,我想更新所有文档中的 profile.contacts.phones[] 部分,其中该电话号码的 _id 匹配。
这是我的代码:
Profile.update({'contacts.phones._id':req.body._id}, {
Profile.contacts.phones.phone_number:req,body.phone_number,
Profile.contacts.phones.phone_type:req.body.phone_type
}, {multi:true}, function(err, result){
if(err)
res.send(err)
res.json(result);
})
这是一个示例“个人资料”文档:
{
"_id" : ObjectId("59c09dca981de33d180df943"),
"last_name" : "Sam",
"first_name" : "Sam",
"owner_id" : "59c09dca981de33d180df940",
"contacts" : [
{
"first_name" : "Joe",
"last_name" : "Public",
"_id" : ObjectId("59c09dca981de33d180df944"),
"phones" : [
{
"phone_number" : "2067155803",
"phone_type" : "home",
"_id" : ObjectId("59bca0b55481370985cac29a")
}
]
}
]
"__v" : 0
}
根据我在文档中看到的内容,这应该可以工作...
感谢您的任何见解!
【问题讨论】:
标签: node.js mongodb express mongoose mongodb-query