Pergunta

Tenho usado MongoDB e RoR para armazenar dados de log.Estou retirando os dados e procurando paginar os resultados.Alguém já fez paginação com o MongoDB ou conhece algum recurso on-line que possa me ajudar a começar?

Saúde

Efe

Foi útil?

Solução

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 ignora os três primeiros registros do usuário e nos dá os próximos três.Se houver apenas mais um usuário no seu banco de dados, não se preocupe;O MongoDB é inteligente o suficiente para retornar apenas os dados presentes e não travar.

Isso pode ser generalizado dessa forma e seria aproximadamente equivalente ao que você faria em um aplicativo da web.Supondo que temos variáveis ​​chamadas PAGE_SIZE que é definido como 3, e um arbitrário PAGE_NUMBER:

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

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top