Question

J'utilise MongoDB et RoR pour stocker des données de journalisation. Je tirais les données et à la recherche à la page des résultats. Quelqu'un at-il fait avec la pagination ou MongoDB connaissez des ressources en ligne qui pourrait aider à me commencer?

Vive

Eef

Était-ce utile?

La solution

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

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

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

extrait une liste des trois premiers documents de l'utilisateur pour nous. Notez que ceci est essentiellement le même que l'écriture:

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

Pour les trois suivants, nous pouvons faire ceci:

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

Cette saute au cours des trois premiers disques de l'utilisateur, et nous donne les trois suivants. S'il n'y a plus qu'un seul utilisateur dans votre base de données, ne vous inquiétez pas; MongoDB est assez intelligent pour retourner uniquement les données présentes, et ne plantera pas.

Ceci peut être généralisé comme si, et serait à peu près équivalent à ce que vous feriez dans une application web. En supposant que nous avons appelées variables PAGE_SIZE qui est fixé à 3, et un PAGE_NUMBER arbitraire:

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

Je ne peux pas parler directement quant à la façon d'employer cette méthode en Ruby on Rails, mais je soupçonne que la bibliothèque Ruby MongoDB expose ces méthodes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top