在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的记录。我怎么写这个以便在两者上过滤?换句话说,我怎样才能执行“数据不等于以下任何一个[...]”?
答案 0 :(得分:4)
$nin
。
$nin
选择以下文件:
- 中
field
值不在指定数组或field
不存在。
尝试
foo = db.collection.find({
"data": { "$nin": [504, 400] },
})