C'est parce que vous utilisez un index clairsemé pour bcoded_metadata
. Si vous avez un index clairsemé sur bcoded_metadata, alors l'index ne contiendra pas les documents qui n'ont pas le champ bcoded_metadata
. Les documents sans les bcoded_metadata
ne font pas partie de votre requête d'origine, et donc "count" renverra 0.
Si vous lancez uniquement la recherche :db.ts.find({"bcoded_metadata" : { "$exists" : false } })
alors vous n'obtiendrez aucun résultat non plus. Vous pouvez soit utiliser un index non clairsemé, soit faire un comptage complet avec db.ts.count();
et soustrayez le résultat de db.ts.find({"bcoded_metadata" : { "$exists" : true } })
résultat.
Il existe un ticket JIRA qui l'explique un peu plus et peut être suivi au cas où MongoDB recevrait un message d'erreur/d'avertissement pour cela :https://jira.mongodb.org/browse/SERVER-3918