2015-01-12 27 views
3

有没有人知道为什么mongodb在执行接下来的3个查询时返回奇怪的结果数?看来,第一和第二计数的结果应该等于第三计数,但事实并非如此。我要做的就是计算包含特定领域文档+不包含该字段的那些数量。我希望这是等于文档总数:为什么mongo数不加起来?

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

回答

2

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

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