Questo perché utilizzi un indice sparso per bcoded_metadata
. Se hai un indice sparso su bcoded_metadata, l'indice non conterrà i documenti che non hanno il campo bcoded_metadata
. I documenti senza i bcoded_metadata
campo non fanno parte della query originale e quindi "count" restituirà 0.
Se esegui solo la ricerca:db.ts.find({"bcoded_metadata" : { "$exists" : false } })
quindi non otterrai alcun risultato. Puoi utilizzare un indice non sparsi o fare un conteggio completo con db.ts.count();
e sottrai il risultato di db.ts.find({"bcoded_metadata" : { "$exists" : true } })
risultato.
C'è un ticket JIRA che lo spiega un po' di più e può essere monitorato nel caso in cui MongoDB acquisisca un messaggio di errore/avviso per questo:https://jira.mongodb.org/browse/SERVER-3918