如何使用MongoDB $ pull删除不匹配条件的元素?

时间:2018-02-10 14:39:58

标签: arrays node.js database mongodb mongodb-update

我有一个MongDB文档,如下所示:

{
   values: [{val:true}, {val:false}, {val:true}, {val:"dgfdshfsj"}]
}

我如何使用MongoDB $ pull运算符从数组中删除非true的所有元素,有点像这样:

db.myCollection.update({}, {$pull{values:{val:!true}}}, {multi:true})

1 个答案:

答案 0 :(得分:1)

在查询中使用 $elemMatch 运算符以及逻辑运算符 $ne ,如下所示:

db.myCollection.updateMany(
    { "values": { "$elemMatch": { "val": { "$ne": true } } } },
    { "$pull": { "values": { "val": { "$ne": true } } } }
)