我正在尝试使用子字典更新数组中的多个记录。如果在集合中找到该记录,那么该记录必须更新。
我的猫鼬模式如下:
comments: [{
text: {
type: String,
},
author: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
name: {
type:String
},
photo:{
type:String
}
}
}]
**My data like this:**
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 更新comments数组中的名称和照片。在上面的数据中更新 author.id = 123
我的代码是:
Event.find({'comments.author.id':_id},(err,event)=>{
_.each(event,function(eventData){
_.each(eventData.comments,function(commentData){
if(commentData.author.id ==_id){
console.log("event:"+eventData._id)
Event.update({_id:eventData._id},{$set:{'comments':[{'author.name':username,'author.photo':photoUrl}]}},{multi:true},(err,updateComment)=>{
console.log("commentupdate:"+JSON.stringify(updateComment))
});
}
})
})
})
我在最近两天被困在这里。请给我任何解决方案。不要重复,如果重复,请提供有效答案。感谢