MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Pagination avec MongoDB

La pagination dans MongoDB peut être réalisée en utilisant une combinaison de limit() et skip() .

Par exemple, supposons que nous ayons une collection appelée utilisateurs dans notre base de données active.

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

Cela récupère une liste des trois premiers documents utilisateur pour nous. Remarque, c'est essentiellement la même chose que d'écrire :

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

Pour les trois suivants, nous pouvons faire ceci :

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

Cela ignore les trois premiers enregistrements d'utilisateur et nous donne les trois suivants. S'il n'y a qu'un seul utilisateur de plus dans votre base de données, ne vous inquiétez pas; MongoDB est suffisamment intelligent pour ne renvoyer que les données présentes et ne plantera pas.

Cela peut être généralisé ainsi, et serait à peu près équivalent à ce que vous feriez dans une application Web. En supposant que nous ayons des variables appelées PAGE_SIZE qui est défini sur 3, et un PAGE_NUMBER arbitraire :

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

Je ne peux pas dire directement comment utiliser cette méthode dans Ruby on Rails, mais je soupçonne que la bibliothèque Ruby MongoDB expose ces méthodes.