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

Mongo z javą - znajdź zapytanie z rozmiarem partii

DBCursor pozwala na iterację po zbiorze dokumentów, które są uważane za istotne dla zapytania przekazać do find() metoda. Leniwie pobiera te dokumenty z bazowej bazy danych w kawałkach batchSize .

Tak więc przy domyślnym rozmiarze partii (101, IIRC) zwróci pierwsze 101 dokumentów klientowi, a następnie, gdy kod klienta będzie iterować poza 101. dokumentem, (za kulisami) pobierze następne 101 dokumentów i tak dalej, aż do z następujących wystąpi najpierw:

  • Zwracane są wszystkie dokumenty, które są istotne dla Twojego zapytania, tj. kursor jest wyczerpany
  • Twój klient przestaje iterować

To samo dotyczy sytuacji, gdy ustawisz jawny batchSize więc w twoim przypadku, gdy ustawisz batchSize=500 , znajdź() wywołanie zwraca DBCursor który zawiera (maksymalnie) 500 dokumentów, a jeśli było więcej niż 500 dokumentów pasujących do zapytania, to po przejściu poza 500. dokument sterownik Java MongoDB (za kulisami) pobrałby następną partię.

Stwierdziłeś ...

... jeśli otrzymasz tylko 500 dokumentów, to albo przestałeś iterować po 500, albo tylko 500 dokumentów zostało uznanych za istotne dla Twojego zapytania .

Możesz zobaczyć, ile dokumentów jest odpowiednich dla Twojego zapytania, używając count() metoda. Na przykład:

int count = collection.find(query).count();

Możesz też pobrać wszystkie dokumenty związane z zapytaniem za jednym razem bez użycia DBCursor w ten sposób ...

List<DBObject> obj = collection.find(query).toArray();

... chociaż oczywiście może to mieć wpływ na stertę Twojej aplikacji, ponieważ spowoduje to, że każdy dokument spełniający Twoje kryteria będzie przechowywany na stercie w Twoim kliencie (zamiast bardziej przyjaznego dla pamięci podejścia polegającego na odczytywaniu ich w partiach za pomocą Kursor DBC ).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mój kod API pobiera pustą tablicę danych z mongodb, podczas gdy kod działa dobrze na placu zabaw mongodb

  2. Fast or Bulk Upsert w pymongo

  3. Mongodb ERROR:proces potomny nie powiódł się, zakończono z błędem numer 51

  4. Buforowanie obiektów kolekcji Mongodb w Node.js

  5. MongoDB C# Query Array of Objects, która zawiera wartość właściwości