【发布时间】:2017-09-20 15:39:08
【问题描述】:
根据标题,我想知道是否有办法获取 MongoDB 索引中的文档数。
明确地说,我不是在寻找以下任何一种:
- 如何获取集合中的文档数 --
.count(). - 如何获取索引的大小 --
.stats().
【问题讨论】:
根据标题,我想知道是否有办法获取 MongoDB 索引中的文档数。
明确地说,我不是在寻找以下任何一种:
.count()..stats().【问题讨论】:
索引引用其集合中的所有文档,除非索引是sparse index 或partial index。来自文档:
稀疏索引仅包含具有索引字段的文档的条目,即使索引字段包含空值。索引会跳过任何缺少索引字段的文档。索引是“稀疏的”,因为它不包括集合的所有文档。相比之下,非稀疏索引包含集合中的所有文档,为那些不包含索引字段的文档存储空值。
部分索引只索引集合中满足指定过滤表达式的文档
所以...
非稀疏和非部分索引的答案是db.collection.count()
稀疏和部分索引的答案可以通过运行没有条件的查询、提示该索引然后计算结果来推断。例如:
db.collection.find().hint('index_name_here').count()
【讨论】: