2015-01-12 59 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()