【问题标题】:MongoDB the most efficient way to query documents whose specific fields are not contained in a list of valuesMongoDB查询特定字段不包含在值列表中的文档的最有效方法
【发布时间】:2015-07-27 18:38:16
【问题描述】:

我有一个关于过滤特定字段不在值列表中的文档的问题。例如,文档仅包含唯一且被索引的“_id”字段。现在我有一个“_id”列表,想找出所有“_id”不在“_id”列表中的文档。

我可以通过使用 $in 运算符来做到这一点:

db.mycollection.find({_id:{$in:["id1","id2"]}},{_id:1})

返回所有 id 在列表中的文档,然后与给定的列表进行比较。对于数千个文档,这种方式的性能还不够好。我想知道是否有更好的方法来做到这一点。例如,是否可以构造一个查询只返回id不在列表中的文档以减少网络传输时间?

谢谢

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    $nin 就是你要找的东西

    db.mycollection.find({ "_id": { "$nin": [ "id1","id2" ]}}, { "_id": 1 })
    

    【讨论】:

      猜你喜欢
      • 2016-06-18
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 2022-01-19
      相关资源
      最近更新 更多