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

问题描述 投票:1回答:1

我有一个看起来像这样的MongoDB文档:

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

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

db.myCollection.update({}, {$pull{values:{val:!true}}}, {multi:true})
arrays node.js database mongodb mongodb-update
1个回答
1
投票

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

db.myCollection.updateMany(
    { "values": { "$elemMatch": { "val": { "$ne": true } } } },
    { "$pull": { "values": { "val": { "$ne": true } } } }
)
© www.soinside.com 2019 - 2024. All rights reserved.