MongoDB でシャードレプリカ環境を構築し、データ数をカウントした際に、Insert で書き込んだデータ数と count() で出した値が一致しないことがありました。
1 2 |
mongos> db.test.count() 2105431 |
MongoDB の count() のマニュアルには『count() はコレクションのメタデータに基づいて結果を返すため、概算のカウントになってしまう可能性があります。』とあります。
https://docs.mongodb.com/manual/reference/method/db.collection.count/
例えば、以下のようにすると、正確な値を取得できます。
1 2 |
mongos> db.test.count({user:{$exists:true}}) 2100000 |