/* 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“),”评论“:[{... ...>
尝试此查询
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
]
}
)