【问题标题】:Get Number of Documents in MongoDB Index获取 MongoDB 索引中的文档数
【发布时间】:2017-09-20 15:39:08
【问题描述】:

根据标题,我想知道是否有办法获取 MongoDB 索引中的文档数。

明确地说,我不是在寻找以下任何一种:

  • 如何获取集合中的文档数 -- .count().
  • 如何获取索引的大小 -- .stats().

【问题讨论】:

    标签: mongodb indexing


    【解决方案1】:

    索引引用其集合中的所有文档,除非索引是sparse indexpartial index。来自文档:

    稀疏索引仅包含具有索引字段的文档的条目,即使索引字段包含空值。索引会跳过任何缺少索引字段的文档。索引是“稀疏的”,因为它不包括集合的所有文档。相比之下,非稀疏索引包含集合中的所有文档,为那些不包含索引字段的文档存储空值。

    部分索引只索引集合中满足指定过滤表达式的文档

    所以...

    • 非稀疏和非部分索引的答案是db.collection.count()

    • 稀疏和部分索引的答案可以通过运行没有条件的查询、提示该索引然后计算结果来推断。例如:

        db.collection.find().hint('index_name_here').count()
      

    【讨论】:

    • 可能也值得一提partial indexes。不过,它们与稀疏的属于同一类别。
    • 另外,对于稀疏/部分索引,我建议查看定义并针对过滤条件发出计数查询,而不是沿着提示路径走。
    • @dnickless good call re 部分索引,我已经更新了答案,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 2017-01-11
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多