获取 MongoDB 索引中的文档数量

Jim*_*Joo 4 indexing mongodb

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

需要明确的是,我并不是寻找以下任何一个:

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

gly*_*ing 6

索引引用其集合中的所有文档,除非该索引是稀疏索引部分索引。来自文档:

\n
\n

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

\n

部分索引仅对集合中满足指定过滤表达式的文档进行索引

\n
\n

所以 ...

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

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

    \n
      db.collection.find().hint(\'index_name_here\').count()\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
\n

  • 另外,对于稀疏/部分索引,我建议查看定义并针对过滤条件发出计数查询,而不是沿着提示路径走下去。 (2认同)