Isso ocorre porque você usa um índice esparso para
bcoded_metadata
. Se você tiver um índice esparso em bcoded_metadata, o índice não conterá os documentos que não possuem o campo bcoded_metadata
. Os documentos sem o bcoded_metadata
campo não fazem parte de sua consulta original e, portanto, "count" retornará 0. Se você executar apenas o find:
db.ts.find({"bcoded_metadata" : { "$exists" : false } })
então você também não obterá nenhum resultado. Você pode usar um índice não esparso ou fazer uma contagem completa com db.ts.count();
e subtraia o resultado de db.ts.find({"bcoded_metadata" : { "$exists" : true } })
resultado. Há um ticket do JIRA que explica um pouco mais e pode ser rastreado caso o MongoDB receba uma mensagem de erro/aviso para isso:https://jira.mongodb.org/browse/SERVER-3918