Това е така, защото използвате разреден индекс за bcoded_metadata . Ако имате разреден индекс на bcoded_metadata, тогава индексът няма да съдържа документите, които нямат полето bcoded_metadata . Документите без bcoded_metadata не са част от първоначалната ви заявка и следователно „count“ ще върне 0.
Ако стартирате само намирането:db.ts.find({"bcoded_metadata" : { "$exists" : false } }) тогава също няма да получите никакви резултати. Можете или да използвате неразреден индекс, или да направите пълно преброяване с db.ts.count(); и извадете резултата от db.ts.find({"bcoded_metadata" : { "$exists" : true } }) резултат.
Има билет за JIRA, който го обяснява малко повече и може да бъде проследен, в случай че MongoDB получи съобщение за грешка/предупреждение за това:https://jira.mongodb.org/browse/SERVER-3918