IN条件在mongoDB中不起作用

时间:2018-04-05 07:42:46

标签: mongodb mongoose

我想根据某些条件从MongoDB中删除一些集合。

我正在使用{ $in: deleteModule},其中deletemodule是数组["ab","bc"]

但它只删除了集合中第一个存在的记录。

myDb.collection('ABC').findAndModify(
        {'projectName': projectName, 'companyName': companyName,'moduleName':{ $in: deleteModule}},
        [['_id', 'asc']],
        { 'remove': true },

2 个答案:

答案 0 :(得分:1)

findAndModify可用于原子地修改文档(最多一个)并返回它。它将仅删除第一个匹配的文档。这就是它的实现方式。 官方文件如此说:https://docs.mongodb.com/manual/reference/command/findAndModify/

对您的用例使用remove。 例如:

db.users.remove({'_id':{'$in':inactive_users}})

答案 1 :(得分:0)

您需要使用$in条件来实现结果

ABC.remove({ moduleName: { $in: deleteModule } })