pagination
A paginação no MongoDB é conseguida através do uso de duas outras funções: .limit()
e .skip()
.
limit
O método limit, como o próprio nome indica, limita o retorno de documentos. Recebe um inteiro como argumento, e devolve essa quantidade de documentos de uma coleção.
skip
O método skip, pula um número n
de documentos, ou seja, retorna apenas os próximos, pulando os n
primeiros. Também recebe um inteiro como argumento.
Utilizando os dois métodos acima juntos, conseguimos paginar, ou seja, retornar uma quantidade limitada de documentos a cada interação. Para paginar de 10 em 10, utilizamos assim:
.limit(10).skip(0 * 10); //primeira página
.limit(10).skip(1 * 10); //segunda página
.limit(10).skip(2 * 10); //terceira página
E para paginar de 5 em 5:
.limit(5).skip(0 * 5); //primeira página
.limit(5).skip(1 * 5); //segunda página
.limit(5).skip(2 * 5); //terceira página
Pois se fizermos as contas, ao pular 0 5 documentos, não estamos pulando ninguém, então retornarmos os primeiros documentos, ao pular 1 5, pulamos, os 5 primeiros, ou seja, pulamos a quantidade que já foi vista na primeira página, e ao pularmos 2 * 5, pulamos 10 documentos, que são aqueles da primeira e segunda página, trazendo assim apenas os da terceira página, e assim por diante.