我正在尝试同时更新文档和整个集合中的数组中的多个记录。
我的数据是这样的:
comments : [
{
"text" : "Good one",
"_id" : ObjectId("5722101611a53cca08544d25"),
"author" : {
"id" : "123",
"name" : null,
"photo" : null
}
},
{
"text" : "nice one",
"_id" : ObjectId("5722103511a53cca08544d24"),
"created" : ISODate("2016-04-28T13:29:25.444Z"),
"author" : {
"id" : "123",
"name" :null,
"photo":null
}
},
{
"text" : "Good one",
"_id" : ObjectId("5718768d98eb065c035b645"),
"author" : {
"id" : "456"
}
}
]
在上面的注释数组中有两个记录 author.id = 123 我希望一次更新这两个记录。 我的逻辑如下:
Event.update({'comments.author.id':_id},
{ $set:{
"comments.$.author.name":username,
"comments.$.author.photo":photoUrl
}
},{multi:true},(err,commentupdate)=>{
console.log("commentupdate:"+JSON.stringify(commentupdate))
})
从上面的查询中,它正在更新该数组中的第一条记录,而第二条记录没有更新。请建议我一次更新两条记录的任何解决方案。