sql >> Databasteknik >  >> NoSQL >> MongoDB

Paginering med MongoDB

Paginering i MongoDB kan åstadkommas genom att använda en kombination av limit() och skip() .

Anta till exempel att vi har en samling som kallas användare i vår aktiva databas.

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

Detta hämtar en lista över de tre första användardokumenten åt oss. Observera att detta är i huvudsak samma sak som att skriva:

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

För de kommande tre kan vi göra detta:

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

Detta hoppar över de tre första användarposterna och ger oss de tre nästa. Om det bara finns en användare till i din databas, oroa dig inte; MongoDB är smart nog att bara returnera data som finns och inte kraschar.

Detta kan generaliseras på det sättet, och skulle vara ungefär likvärdigt med vad du skulle göra i en webbapplikation. Förutsatt att vi har variabler som heter PAGE_SIZE som är inställd på 3 och en godtycklig PAGE_NUMBER :

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

Jag kan inte tala direkt om hur man använder den här metoden i Ruby on Rails, men jag misstänker att Ruby MongoDB-biblioteket avslöjar dessa metoder.




  1. Logga MongoDB-frågor med Spring Boot

  2. Hadoop Map/Reduce vs inbyggd Map/Reduce

  3. 3 sätt att skapa ett index i MongoDB

  4. MongoDB $eq Aggregation Pipeline Operator