Retorne apenas o número de documentos que você precisa com o
limit() método. No MongoDB, você pode usar o
limit() método para especificar um número máximo de documentos para um cursor retornar. Quando você consulta uma coleção usando o
db.collection.find() método, você pode anexar limit() para especificar o limite. Exemplo
Primeiro vamos fazer uma consulta sem um limite (para que possamos ver quantos documentos são retornados):
Sem limite
db.artists.find( { albums: { $exists: false }} ) Resultado:
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" }
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }
Com um limite
OK, então vamos limitar os resultados a dizer, 3 documentos:
db.artists.find( { albums: { $exists: false }} ).limit(3) Resultado:
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" }
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }
Em nossa consulta, estamos usando o
$exists operador para verificar a existência de um campo. Neste caso, excluímos os artistas que possuem
álbuns
campo no documento. Isso pode ser facilmente alterado para
{ $exists: true } para incluir apenas os artistas com
álbuns
campo. Adicione o skip() Método
Você pode usar o
skip() método para pular para um documento dentro do cursor. Em outras palavras, você pode controlar onde o MongoDB começa a retornar os resultados. db.artists.find( { albums: { $exists: false }} ).limit(3).skip(1) Resultado:
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
Então você pode ver que ele pulou o primeiro resultado, mas ainda retornou 3 documentos.
Observe que
skip() pode ser usado em qualquer consulta (não apenas aquelas com limit() ). Por exemplo, a consulta no topo desta página retornou 6 documentos. Se adicionarmos
skip(3) , terminaremos com os 3 últimos documentos:db.artists.find( { albums: { $exists: false }} ).skip(3) Resultado:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }