2

在 Mongo(特别是 pymongo)中,我的目标是能够排除不等于多个值之一的记录。在此示例中,数据不是 504 或 400。我知道我可以使用以下方法排除不包含单个值的记录:

foo = db.collection.find({
        "data": { "$ne": 400 }
    })

我已经尝试过:

foo = db.collection.find({
        "data": { "$ne": 400 },
        "data": { "$ne": 504 }
    })

foo = db.collection.find({
        "data": { "$ne": 400, "$ne": 504 }
    })

...但在这两种情况下,似乎只进行最后一次比较。我仍然得到数据为 400 的记录。我怎样才能写这个以便它过滤两者?换句话说,我该如何执行“数据不等于以下任何[...]”?

4

1 回答 1

5

您正在寻找$nin.

根据文件

$nin选择以下文档:

  • field值不在指定的数组中或
  • field存在。

尝试

foo = db.collection.find({
    "data": { "$nin": [504, 400] },
})
于 2013-08-15T17:01:30.847 回答