MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Paginação com MongoDB


A paginação no MongoDB pode ser realizada usando uma combinação de limit() e skip() .

Por exemplo, suponha que temos uma coleção chamada users em nosso banco de dados ativo.
>> db.users.find().limit(3)

Isso recupera uma lista dos três primeiros documentos do usuário para nós. Observe que isso é essencialmente o mesmo que escrever:
>> db.users.find().skip(0).limit(3)

Para os próximos três, podemos fazer isso:
>> db.users.find().skip(3).limit(3)

Isso pula os três primeiros registros de usuário e nos dá os próximos três. Se houver apenas mais um usuário em seu banco de dados, não se preocupe; O MongoDB é inteligente o suficiente para retornar apenas dados presentes e não travará.

Isso pode ser generalizado assim e seria aproximadamente equivalente ao que você faria em um aplicativo da web. Assumindo que temos variáveis ​​chamadas PAGE_SIZE que é definido como 3 e um PAGE_NUMBER arbitrário :
>> db.users.find().skip(PAGE_SIZE * (PAGE_NUMBER - 1)).limit(PAGE_SIZE)

Não posso falar diretamente sobre como empregar esse método no Ruby on Rails, mas suspeito que a biblioteca Ruby MongoDB exponha esses métodos.