MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongo с java - намиране на заявка с batchsize

DBCursor ви позволява да обхождате набора от документи, които се считат за подходящи за query за предаване в find() метод. Той лениво извлича тези документи от основната база данни на парчета от batchSize .

И така, с размера на пакета по подразбиране (101, IIRC) той ще върне първите 101 документа на вашия клиент и след това, когато кодът на клиента ви повтори след 101-ия документ, той (зад кулисите) ще вземе следващите 101 документа и така нататък, докато първо се случва от следното:

  • Всички документи, които са свързани с вашата заявка, се връщат, т.е. курсорът е изчерпан
  • Вашият клиент спира да повтаря

Същото важи, когато зададете изричен batchSize така че във вашия случай, когато зададете batchSize=500 , find() извикването връща DBCursor който съдържа (най-много) 500 документа и ако имаше повече от 500 документа, отговарящи на вашата заявка, тогава, докато итерирате след 500-ия документ, драйверът на MongoDB Java (зад кулисите) ще извлече следващата партида.

Вие казахте ...

... ако получите само 500 документа, тогава или сте спрели итерацията след 500, или само 500 документа са счетени за подходящи за вашата query .

Можете да видите колко документа са подходящи за вашата заявка, като използвате count() метод. Например:

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

Можете също така да вземете всички документи, свързани с вашата заявка наведнъж без да използвате DBCursor така...

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

... въпреки че, разбира се, това може да има последици за купчината на вашето приложение, тъй като би довело до това, че всеки документ, който отговаря на критериите ви, ще бъде съхранен в купчина във вашия клиент (вместо по-щадящия паметта подход за четенето им на партиди чрез DBCursor ).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вземете колекция и добавете стойност към отговора

  2. Производителност на Node.js mongoose

  3. Уникални документи, използващи множество стойности в Mongoose Schema

  4. Не може да се намери модул в Nodejs

  5. Върнете елемент от масив по индекс в шаблон за интервали за метеор