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

MongoDB:не може да използва курсор за итерация през всички данни

Като цяло, да. Ако имате монотонно поле, в идеалния случай индексирано поле, можете просто да вървите по него. Например, ако използвате полета от тип ObjectId като първичен ключ или ако имате CreatedDate или нещо подобно, можете просто да използвате $lt заявка, вземете фиксиран брой елементи, след което заявете отново, като използвате $lt от най-малкия _id или CreatedDate срещнахте в предишната група.

Внимавайте със строгото монотонно поведение спрямо нестрогото монотонно поведение:може да се наложи да използвате $lte ако ключовете не са стриктни, тогава предотвратете правенето на неща два пъти на дуповете. Тъй като _id полето е уникално, ObjectIds винаги са строго монотонни.

Ако нямате такъв ключ, нещата са малко по-трудни. Все още можете да итерирате „по индекса“ (какъвто и индекс, било то име, хеш, UUID, Guid и т.н.). Това работи също толкова добре, но е трудно да направите моментна снимка, защото никога не знаете дали резултатът, който току-що сте намерили, е бил вмъкнат, преди да започнете да преминавате, или не. Освен това, когато документите се вмъкват в началото на обхождането, те ще бъдат пропуснати.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Можете ли да използвате заявки за намиране на GridFS с помощта на API на javascript?

  2. mongodb:най-добрият начин да получите конкретни документи и след това останалите

  3. MongoDB:безопасно ли е да използвате идентификатора на документа публично?

  4. Кой е най-добрият графичен интерфейс на MongoDB? — Актуализация за 2019 г.

  5. Как да извлечете подробностите от mongo db и да изпратите или съхраните в обект в метода nodejs Fork