如何在Mongodb中的单个集合中更新同一数组中的多个记录

时间:2016-04-28 14:04:32

标签: node.js mongodb

我正在尝试同时更新文档和整个集合中的数组中的多个记录。

我的数据是这样的:

  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))
              })

从上面的查询中,它正在更新该数组中的第一条记录,而第二条记录没有更新。请建议我一次更新两条记录的任何解决方案。

0 个答案:

没有答案