我对此有很多类似的问题,但无法在我的收藏中使用。
如何删除特定评论(您可以假定我知道userId)。
例如,我想用commentId=3
删除评论,并且知道它在userId=1
下。
[
{
userId: "1",
posts: [
{
postId: "2",
comments: [
{
commentId: "3",
...
},
...
]
},
...
]
},
...
]
谢谢!
答案 0 :(得分:1)
这适用于Mongodb 4.2,如果与“ commentId” 3相匹配,则会从“ comments”中删除第一个数组条目。
db.posts.update(
{"userId" : "1"},
{$pull : {"posts.$[].comments" : {"commentId":"3"}}}
)
如果要删除所有数组条目,请使用:
db.posts.update(
{"userId" : "1"},
{$pull : {"posts.$[].comments" : {"commentId":"3"}}},
{"multi": true}
)
答案 1 :(得分:0)
您是否尝试过使用deleteOne()
函数?尝试看看MongoDb文档。 MongoDbDocumentation