Menu Docs
Página inicial do Docs
/ / /
Node.js
/ / /

Limite o número de resultados retornados

Nesta página

  • Visão geral
  • Documentos de amostra
  • Limite
  • Ignorar

Use limit para limitar o número de documentos que podem ser devolvidos de uma operação de leitura. limit funciona como um limite para o número máximo de documentos que a operação pode retornar, mas a operação pode retornar um número menor de documentos se não houver documentos suficientes presentes para atingir o limite. Se limit for utilizado com o método desalto , o salto se aplicará primeiro e o limite se aplicará somente aos documentos deixados após o salto.

Para acompanhar os exemplos deste guia, use o seguinte trecho de código para inserir documentos que descrevem livros na coleção myDB.books :

const myDB = client.db("myDB");
const myColl = myDB.collection("books");
await myColl.insertMany([
{ "_id": 1, "name": "The Brothers Karamazov", "author": "Dostoyevsky", "length": 824 },
{ "_id": 2, "name": "Les Misérables", "author": "Hugo", "length": 1462 },
{ "_id": 3, "name": "Atlas Shrugged", "author": "Rand", "length": 1088 },
{ "_id": 4, "name": "Infinite Jest", "author": "Wallace", "length": 1104 },
{ "_id": 5, "name": "Cryptonomicon", "author": "Stephenson", "length": 918 },
{ "_id": 6, "name": "A Dance With Dragons", "author": "Martin", "length": 1104 },
]);

Observação

Sua operação de query pode retornar uma referência a um cursor que contém documentos correspondentes. Para saber como examinar os dados armazenados no cursor, consulte a página Fundamentos do cursor.

O exemplo abaixo faz query na collection para retornar os três livros mais longos. Corresponde a todos os documentos porque o filtro de query está vazio. Em seguida, ele aplica um sort decrescente no campo length para devolver retornar livros mais longos antes de livros mais curtos, e um limit para retornar somente os 3 primeiros resultados:

// define an empty query document
const query = {};
// sort in descending (-1) order by length
const sort = { length: -1 };
const limit = 3;
const cursor = myColl.find(query).sort(sort).limit(limit);
for await (const doc of cursor) {
console.dir;
}

O exemplo de código acima gera os três documentos a seguir, classificados por tamanho:

{ "_id": 2, "title": "Les Misérables", "author": "Hugo", "length": 1462 }
{ "_id": 6, "title": "A Dance With Dragons", "author": "Martin", "length": 1104 }
{ "_id": 4, "title": "Infinite Jest", "author": "Wallace", "length": 1104 }

Observação

A ordem em que você chama limit e sort não importa porque o driver reordena as chamadas para aplicar primeiro a classificação e o limite depois disso. As duas chamadas a seguir são equivalentes:

myColl.find(query).sort({ length: -1 }).limit(3);
myColl.find(query).limit(3).sort({ length: -1 });

Você também pode aplicar sort e limit especificando-os em um objeto options em sua chamada ao método find(). As duas chamadas a seguir são equivalentes:

myColl.find(query).sort({ length: -1 }).limit(3);
myColl.find(query, { sort: { length: -1 }, limit: 3 });

Para obter mais informações sobre as configurações options do método find(), consulte a documentação da API sobre find().

Para ver os próximos três livros nos resultados, anexe o método skip(), passando o número de documentos para ignorar como mostrado abaixo:

// define an empty query document
const query = {};
// sort in descending (-1) order by length
const sort = { length: -1 };
const limit = 3;
const skip = 3;
const cursor = myColl.find(query).sort(sort).limit(limit).skip(skip);
for await (const doc of cursor) {
console.dir;
}

Essa operação retorna os documentos que descrevem do quarto ao sexto livro por ordem de maior para o menor tamanho:

{ "_id": 3, "title": "Atlas Shrugged", "author": "Rand", "length": 1088 }
{ "_id": 5, "title": "Cryptonomicon", "author": "Stephenson", "length": 918 }
{ "_id": 1, "title": "The Brothers Karamazov", "author": "Dostoyevsky", "length": 824 }

Você pode combinar pular e limitar dessa maneira para implementar a paginação da sua coleção, devolvendo apenas pequenas "fatias" da coleção de uma só vez.

Voltar

Ignorar resultados devolvidos