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