2015-01-12 2 views
3

다음 3 쿼리를 수행 할 때 mongodb가 이상한 결과를 반환하는 이유를 알고 있습니까? 첫 번째와 두 번째 계산의 결과는 세 번째와 동일해야하지만 그렇지 않습니다. 어쩌면몽고 카운트가 합산되지 않는 이유는 무엇입니까?

> 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()