MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongo $exists zapytanie nie zwraca poprawnych dokumentów

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




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Podłączanie MongoDB z aplikacji mobilnej lub przeglądarkowej

  2. Duży indeks MongoDB buduje się bardzo wolno

  3. mongodb:zapytaj kilka pierwszych wierszy, w których suma określonej kolumny jest większa lub równa C

  4. findAndModify - MongoError:wyjątek:należy określić usunięcie lub aktualizację

  5. Jak napisać wiele grup według pól id w sterowniku Mongodb java?