Dette er fordi du bruger et sparsomt indeks til bcoded_metadata
. Hvis du har et sparsomt indeks på bcoded_metadata, vil indekset ikke indeholde de dokumenter, der ikke har feltet bcoded_metadata
. Dokumenterne uden bcoded_metadata
felt er ikke en del af din oprindelige forespørgsel, og derfor vil "tælle" returnere 0.
Hvis du kun kører find:db.ts.find({"bcoded_metadata" : { "$exists" : false } })
så får du heller ingen resultater. Du kan enten bruge et ikke-sparsomt indeks eller lave en fuld optælling med db.ts.count();
og træk resultatet fra db.ts.find({"bcoded_metadata" : { "$exists" : true } })
resultat.
Der er en JIRA-billet, der forklarer det lidt mere, og som kan spores, hvis MongoDB får en fejl-/advarselsmeddelelse for dette:https://jira.mongodb.org/browse/SERVER-3918