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

Jaki jest najlepszy sposób na paginację ajaxową za pomocą MongoDb i Nodejs?

Podejście „pomiń i ogranicz” nie jest zbyt wydajne, gdy stronicujesz daleko w zbiorze danych. W rzeczywistości jest to algorytm Szlemiela Malarza.

Zapytania o zakres są znacznie wydajniejsze (jeśli są obsługiwane przez indeksy). Na przykład wyobraźmy sobie, że wyświetlasz tweety. Twój rozmiar strony to 20, jesteś na stronie 1000 i chcesz załadować stronę 1001.

To zapytanie

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

to dużo mniej wydajny niż

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

(pod warunkiem, że masz indeks na created_at ).

Masz pomysł:po załadowaniu strony zanotuj znacznik czasu ostatniego tweeta i użyj go do zapytania o następną stronę.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Co oznacza zbyt wiele opcji pozycyjnych podczas eksportu mongo?

  2. Nie można utworzyć działającego projektu meteor.js na wędrującym pudełku

  3. importowanie JSON do mongoDB za pomocą pymongo

  4. Jak ustawić mongod.conf bind_ip z wieloma adresami ip?

  5. Aktualizacja kolekcji Meteorów z tradycyjnym identyfikatorem