我有一个MongDB文档,如下所示:
{
values: [{val:true}, {val:false}, {val:true}, {val:"dgfdshfsj"}]
}
我如何使用MongoDB $ pull运算符从数组中删除非true
的所有元素,有点像这样:
db.myCollection.update({}, {$pull{values:{val:!true}}}, {multi:true})
答案 0 :(得分:1)
在查询中使用 $elemMatch
运算符以及逻辑运算符 $ne
,如下所示:
db.myCollection.updateMany(
{ "values": { "$elemMatch": { "val": { "$ne": true } } } },
{ "$pull": { "values": { "val": { "$ne": true } } } }
)