Pregunta

He estado usando MongoDB y RoR para almacenar datos de registro. Estoy sacando los datos y mirando a la página de los resultados. Alguien ha hecho la paginación con MongoDB o habilidades de cualquier línea de recursos que podrían ayudar me refiero a?

Saludos

Eef

¿Fue útil?

Solución

paginación en MongoDB se puede lograr mediante el uso de una combinación de limit() y skip().

Por ejemplo, supongamos que tenemos una colección llamada usuarios en nuestra base de datos activa.

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

Esta recupera una lista de los tres primeros documentos de usuario para nosotros. Tenga en cuenta, esto es esencialmente lo mismo que escribir:

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

En los próximos tres, podemos hacer esto:

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

Esto salta sobre los tres primeros registros de usuarios, y nos da las tres siguientes. Si sólo hay un usuario más en su base de datos, no se preocupe; MongoDB es lo suficientemente inteligente como para volver solamente los datos que están presentes, y no se bloqueará.

Esto se puede generalizar como tal, y sería más o menos equivalente a lo que haría en una aplicación web. Suponiendo que tenemos variables llamadas PAGE_SIZE que se establece en 3, y un PAGE_NUMBER arbitraria:

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

No puedo hablar directamente como a cómo emplear este método en Ruby on Rails, pero sospecho que la biblioteca de Ruby MongoDB expone a estos métodos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top