sql >> Database >  >> NoSQL >> MongoDB

Paginering met MongoDB

Paginering in MongoDB kan worden bereikt door een combinatie van limit() . te gebruiken en skip() .

Stel bijvoorbeeld dat we een verzameling hebben met de naam gebruikers in onze actieve database.

>> db.users.find().limit(3)

Hiermee wordt voor ons een lijst met de eerste drie gebruikersdocumenten opgehaald. Let op, dit is in wezen hetzelfde als schrijven:

>> db.users.find().skip(0).limit(3)

Voor de volgende drie kunnen we dit doen:

>> db.users.find().skip(3).limit(3)

Dit slaat de eerste drie gebruikersrecords over en geeft ons de volgende drie. Als er nog maar één gebruiker in uw database is, hoeft u zich geen zorgen te maken; MongoDB is slim genoeg om alleen gegevens terug te sturen die aanwezig zijn, en zal niet crashen.

Dit kan zo worden gegeneraliseerd en zou ongeveer gelijk zijn aan wat u in een webtoepassing zou doen. Ervan uitgaande dat we variabelen hebben genaamd PAGE_SIZE die is ingesteld op 3, en een willekeurige PAGE_NUMBER :

>> db.users.find().skip(PAGE_SIZE * (PAGE_NUMBER - 1)).limit(PAGE_SIZE)

Ik kan niet direct zeggen hoe deze methode in Ruby on Rails moet worden gebruikt, maar ik vermoed dat de Ruby MongoDB-bibliotheek deze methoden blootlegt.




  1. MongoDB voegt float in bij het invoegen van integer

  2. DisabledBackend:grillig gedrag met selderij, redis en kolf

  3. Redis-verbinding verbroken na gebeurtenis

  4. Hoe Apache CouchDB 2.3.0 in Linux te installeren