2016-07-14 10 views
0

なし文書:私は、レコードを照会する場合

> db.test.find().count() 
491740 

crawledキーが存在する:

> db.test.find({'crawled': {$exists: true}}).count() 
6451 

しかし、私は、文書を照会する場合crawledキー:

> db.test.find({'crawled': {$exists: false}}).count() 
0 

結果はクエリ012と似ています

私はなぜ結果が0であるのか理解できません。説明してください!

答えて

0

欄にスパースインデックスがある場合は、説明したようなissueがありました。スパースインデックスは、フィールドを持たないドキュメントに関する情報を格納しないので、スパースインデックスを使用するときにクエリは決してドキュメントを検出しません。
問題のステータスによると、これは修正する必要がありますが、古いバージョンを実行している可能性があります。その場合、スパースインデックスを通常のものに更新または置き換えることができます。
回避策として、すべてのドキュメントを数え、次に$exists: trueで1を減算することで、目的の結果を計算することもできます。

+0

ありがとう、私はそれを試みます。 –

関連する問題