【问题标题】:Filter with multiple criteria in Mongo在 Mongo 中使用多个条件进行过滤
【发布时间】:2013-08-16 01:09:07
【问题描述】:

在 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 的记录。我怎样才能写这个以便它过滤两者?换句话说,我该如何执行“数据不等于以下任何[...]”?

【问题讨论】:

标签: python mongodb pymongo


【解决方案1】:

您正在寻找$nin

根据documentation

$nin 选择的文档在哪里:

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

试试

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

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 2016-08-04
    相关资源
    最近更新 更多