gpt4 book ai didi

mongodb - 对 $pullAll 在 MongoDB 中如何工作感到困惑

转载 作者:行者123 更新时间:2023-12-02 01:26:01 25 4
gpt4 key购买 nike

我有一个如下所示的文档:

db.blog.findOne()
{
"_id" : ObjectId("4dc1c938c4bfb4d21a000001"),
"blogid" : 1,
"body" : "Lorem ipsum dolor",
"comments" : [
{
"id" : 1,
"name" : "Alex",
"comment" : "Test",
"approved" : 1
},
{
"id" : 2,
"name" : "Phil",
"comment" : "Test",
"approved" : 1
},
{
"id" : 3,
"name" : "Joe",
"comment" : "Test",
"approved" : 0
}
],
"no_comments" : 11,
"title" : "Hello world"
}

如果我运行查询

db.blog.update({'blogid':1}, { $pull : { 'comments' : {'approved' : 0} } });

然后它将删除第三条评论。

如果我想提取批准为 0 或 1 的所有评论,则以下查询不起作用:

db.blog.update({'blogid':1}, { $pullAll : { 'comments' : {'approved' : [0,1]} } });

我收到错误

Modifier $pushAll/pullAll allowed for arrays only

有人可以解释一下我哪里出错了吗?

谢谢

最佳答案

$pullAll 需要完全匹配。您可以使用 $pull 代替:

{ $pull : { 'comments' : {'approved' : {$in : [0,1]}} } });

关于mongodb - 对 $pullAll 在 MongoDB 中如何工作感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5890898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com