更新嵌套文档“已确认”:是,但是数据不是我的操作最新的]]

问题描述 投票:0回答:1
/* post document 1 */
{
    "_id" : ObjectId("5da832caeb173112348e509b"),//post._id
    "body" : "Lorem Ipsum .",
    "date" : ISODate("2019-10-17T09:21:45.452Z"),
    "comments" : [ 
        {
            "user" : "5d999578aeb073247de4bd6e",
            "comment" : "12345",
            "_id" : ObjectId("5db06e11d0987d0aa2cd5593"), //comments._id
            "replies" : [ 
                {
                    "likes" : [ 
                        "5d999578aeb073247de4bd6e", 
                        "5da85558886aee13e4e7f044"
                    ],
                    "_id" : ObjectId("5db6a88f7c6cfb0d0c2b689b"),
                    "reply" : "r11111111",
                    "user" : "5da85558886aee13e4e7f044"
                }
            ],
            "likes" : [ 
                "5da85558886aee13e4e7f044"
            ]
        }
    ],
    "likes" : [ 
        "5d999578aeb073247de4bd6e", 
        "5da85558886aee13e4e7f044"
    ]
}

我要更新replies[i].likes的查询

db.getCollection(“ example”)。updateOne(

{
    "_id": ObjectId("5da832caeb173112348e509b"),
    "comments.replies": {
      "$elemMatch": {
        "_id": ObjectId("5db06e11d0987d0aa2cd5593"),//replies._id
      }
    }
  },
  { "$push": { "comments.$[outer].replies.$[inner].likes": "100000" } },
  {
    "arrayFilters": [
      { "outer._id": ObjectId("5db06e11d0987d0aa2cd5593") },//post._id
      { "inner._id": ObjectId("5db6a88f7c6cfb0d0c2b689b") }//comment._id
    ]
  }
)

我在运行后收到消息:

{
    "acknowledged" : true,
    "matchedCount" : 0.0,
    "modifiedCount" : 0.0
}

但是馆藏没有更新,查询有什么问题吗?

/ * post document 1 * / {“ _id”:ObjectId(“ 5da832caeb173112348e509b”),// post._id“ body”:“ Lorem Ipsum。”,“ date”:ISODate(“ 2019-10-17T09:21 :45.452Z“),”评论“:[{... ...>

mongodb
1个回答
1
投票

尝试此查询

db.getCollection("example").updateOne(

{
    "_id": ObjectId("5da832caeb173112348e509b"),
    "comments.replies._id":ObjectId("5db6a88f7c6cfb0d0c2b689b"),//replies._id
  },
  { "$push": { "comments.$[outer].replies.$[inner].likes": "100000" } },
  {
    "arrayFilters": [
      { "outer._id": ObjectId("5db06e11d0987d0aa2cd5593") },//post._id
      { "inner._id": ObjectId("5db6a88f7c6cfb0d0c2b689b") }//comment._id
    ]
  }
)
© www.soinside.com 2019 - 2024. All rights reserved.