【问题标题】:MongoDB Performance With $nin query使用 $nin 查询的 MongoDB 性能
【发布时间】:2020-06-17 18:24:45
【问题描述】:

我收集了 1000000 个文档。我想获取那些 uid 不在给定 uids 中的文档。所以我使用 mongo find 查询和 $nin,所以查询看起来像:

{uid:{$nin:[1,2,3......500000}}

但假设将来我的文档数量增加,并且我通过 $nin 查询传递了更多的 uid。

使用 $nin 查询的 Mongo 剂量会影响查询性能吗?在不使用 $nin 查询的情况下还有其他选择吗?

【问题讨论】:

  • 您的问题不清楚,因为当规模上升时,任何查询的性能都会下降。 $nin 特别不擅长利用索引,因为它仍然需要扫描大部分数据。如果这个系列单调且密集,请尝试使用$gt 代替?

标签: arrays mongodb mongodb-query


【解决方案1】:

检索集合中一半文档的查询很可能会通过集合扫描来执行。在这一点上,条件并不重要。

话虽如此,索引通常不会用于回答否定查询(“X 不是 Y”),因此您应该考虑将条件改写为肯定而不是否定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2022-01-04
    • 1970-01-01
    • 2015-08-23
    相关资源
    最近更新 更多