sql >> Database >  >> NoSQL >> MongoDB

Wat is de beste manier om ajax-paginering te doen met MongoDb en Nodejs?

"overslaan en beperken"-benadering is niet erg efficiënt wanneer u ver in de gegevensset bladert. Het is in feite een algoritme van Shlemiel de Schilder.

Bereikquery's zijn veel efficiënter (indien ondersteund door indexen). Laten we ons bijvoorbeeld voorstellen dat u tweets weergeeft. Uw paginagrootte is 20 en u bevindt zich op pagina 1000 en wilt pagina 1001 laden.

Deze vraag

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

is veel minder efficiënt dan

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

(mits je een index hebt op created_at ).

U snapt het idee:wanneer u een pagina laadt, noteert u de tijdstempel van de laatste tweet en gebruikt u deze om de volgende pagina te doorzoeken.




  1. BSON Type ObjectId converteren naar JSON (opslaan in Mongodb) -Java

  2. Mongodump van externe server

  3. Wat is het aanbevolen equivalent van trapsgewijs verwijderen in MongoDB voor N:M-relaties?

  4. Hoe exporteer ik alle collecties in MongoDB?