Dzieje się tak, ponieważ używasz rzadkiego indeksu dla bcoded_metadata
. Jeśli masz rzadki indeks na bcoded_metadata, indeks nie będzie zawierał dokumentów, które nie mają pola bcoded_metadata
. Dokumenty bez bcoded_metadata
pole nie jest częścią oryginalnego zapytania, dlatego "count" zwróci 0.
Jeśli uruchomisz tylko wyszukiwanie:db.ts.find({"bcoded_metadata" : { "$exists" : false } })
wtedy też nie uzyskasz żadnych wyników. Możesz użyć nierozrzedzonego indeksu lub wykonać pełne zliczenie za pomocą db.ts.count();
i odejmij wynik db.ts.find({"bcoded_metadata" : { "$exists" : true } })
wynik.
Istnieje bilet JIRA, który wyjaśnia nieco więcej i można go śledzić w przypadku, gdy MongoDB otrzyma komunikat o błędzie/ostrzeżeniu:https://jira.mongodb.org/browse/SERVER-3918