Das klingt merkwürdig, und ich hoffe, ich mache etwas falsch, aber meine MongoDB-Sammlung gibt den Count um eins in meiner Sammlung zurück.Falsche Zählung von MongoDB (WiredTiger)
Ich habe eine Sammlung mit (ich bin sicher) 359671 Dokumente. Der Befehl count() gibt jedoch 359670 Dokumente zurück.
Ich bin der count() mit dem Befehl Mongo Shell ausführen:
rs0:PRIMARY> db.COLLECTION.count()
359670
Das ist falsch.
Es findet nicht jedes einzelne Dokument in meiner Sammlung.
Wenn ich die folgende Abfrage zur Verfügung stellen zu zählen, bekomme ich das richtige Ergebnis:
rs0:PRIMARY> db.COLLECTION.count({_id: {$exists: true}})
359671
Ich glaube, das ein Fehler in WiredTiger ist. Soweit ich weiß, hat jedes Dokument die gleiche Definition, ein _id-Feld einer Ganzzahl von 0 bis 359670 und ein BinData-Feld. Ich hatte dieses Problem nicht mit der älteren Speicher-Engine (oder Mongo 2, beide könnten das Problem verursacht haben).
Ist das etwas, das ich falsch gemacht habe? Ich möchte die Abfrage {_id: {$ exists: true}} nicht verwenden, da diese 100 Mal länger dauert.
Verwenden Sie einen Sharded Cluster? Wenn ja, siehe http://docs.mongodb.org/manual/reference/method/db.collection.count/#sharded-clusters – JohnnyHK
Ich benutze keinen Cluster, aber danke für Ihren Vorschlag. – James