sql >> Base de Datos >  >> NoSQL >> MongoDB

Paginación con MongoDB

La paginación en MongoDB se puede lograr usando 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)

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

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

Para los próximos tres, podemos hacer esto:

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

Esto salta los primeros tres registros de usuario y nos da los siguientes tres. Si solo hay un usuario más en tu base de datos, no te preocupes; MongoDB es lo suficientemente inteligente como para devolver solo los datos que están presentes y no fallará.

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

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

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