为啥mongo计数不加起来?

Posted

技术标签:

【中文标题】为啥mongo计数不加起来?【英文标题】:why mongo count doesn't add up?为什么mongo计数不加起来? 【发布时间】:2015-01-12 09:48:15 【问题描述】:

有谁知道为什么 mongodb 在执行接下来的 3 个查询时返回奇怪的结果计数?似乎第一次和第二次计数的结果应该等于第三次,但事实并非如此。我所做的只是计算包含某个字段的文档的数量+不包含该字段的文档的数量。我希望这等于文档的总数:

> db.col1.find(f1:$exists:false).count()
0
> db.col1.find(f1:$exists:true).count()
267837
> db.col1.count()
268185

【问题讨论】:

【参考方案1】:

也许是因为您在 f1 字段上有一个稀疏索引? 如果这是真的,试试这个,看看它们是否匹配:

db.col1.find(f1:$exists:false).hint(f1:1).count()
db.col1.find(f1:$exists:false).hint(_id:1).count()

【讨论】:

以上是关于为啥mongo计数不加起来?的主要内容,如果未能解决你的问题,请参考以下文章

我可以使Mongo map减少计数对象的多个值吗?

Mongo 聚合计数子文档(计数回复评论)

Mongo 聚合游标和计数

Mongo 不同的计数和位置

查找 mongo 文档计数的最佳做法是啥?

javascript Mongo命令用于过滤引用计数