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

Какъв е най-добрият начин да направите ajax пагинация с MongoDb и Nodejs?

Подходът на "пропускане и ограничаване" не е много ефективен, когато прелиствате далеч в набор от данни. Това всъщност е алгоритъмът на художника Шлемиел.

Заявките за диапазон са много по-ефективни (когато се поддържат от индекси). Например, нека си представим, че показвате туитове. Размерът на вашата страница е 20 и вие сте на страница 1000 и искате да заредите страница 1001.

Тази заявка

db.tweets.find().sort({created_at: -1}).skip(1001*20).limit(20)

емного по-малко ефективен от

db.tweets.find({created_at: {$lt: last_displayed_date}}).
          sort({created_at: -1}).limit(20);

(при условие, че имате индекс на created_at ).

Разбирате идеята:когато заредите страница, отбележете клеймото за дата на последния туит и го използвайте, за да направите заявка за следващата страница.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Изчислете средната стойност на mongodb документ

  2. Използване на генератори на Active Record след инсталиране на Mongoid?

  3. търсене по ObjectId в mongodb с pymongo

  4. Как да премахнете дублиращи се записи от масив?

  5. MongoDB insertMany()