cursor.limit()
Nesta página
Definição
cursor.limit()
Importante
Método mongosh
Esta página documenta um método
mongosh
. Esta não é a documentação de um driver de idioma específico, como Node.js.Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.
Use o método
limit()
em um cursor para especificar o número máximo de documentos que o cursor retornará.limit()
é análogo à declaraçãoLIMIT
em um banco de dados SQL.Observação
Você deve aplicar
limit()
ao cursor antes de recuperar quaisquer documentos do banco de dados.Use
limit()
para maximizar o desempenho e impedir que o MongoDB retorne mais resultados do que o necessário para o processamento.O método
limit()
tem a seguinte forma de protótipo:db.collection.find(<query>).limit(<number>)
Comportamento
Valores suportados
O comportamento de limit()
é indefinido nos valores menores que -2 31 e maiores que 2 31.
Você deve especificar um valor numérico para limit()
.
Valor zero
Um valor limit()
de 0 (ou seja, .limit(0)
) é equivalente a não definir nenhum limite.
Valores negativos
Um limite negativo é semelhante a um limite positivo, mas fecha o cursor após retornar um único lote de resultados. Dessa forma, com um limite negativo, se o conjunto limitado não couber em um único lote, o número de documentos recebidos será menor do que o limite especificado. Ao passar um limite negativo, o cliente indica ao servidor que não solicitará um lote subsequente via getMore
.
Usando com limit()
sort()
Se estiver usando limit()
com sort()
, certifique-se de incluir pelo menos um campo em sua classificação que contenha valores exclusivos, antes de passar os resultados para limit()
.
A classificação em campos que contêm valores duplicados pode retornar uma ordem de classificação inconsistente para esses campos duplicados em várias execuções, especialmente quando a **coleção** está recebendo gravações ativamente.
A maneira mais fácil de garantir consistência de classificação é incluir o campo _id
em sua query de classificação.
Consulte Classificação consistente com o método sort() para obter mais informações.
Usando com limit()
skip()
Quando você encadeia skip()
e limit()
, a ordem de encadeamento do método não afeta os resultados. O servidor sempre aplica a operação de ignorar com base na ordem de classificação antes de aplicar o limite de quantos documentos retornar.
O exemplo de código a seguir mostra diferentes ordens de encadeamento para skip()
e limit()
que sempre produzem os mesmos resultados de consulta para o mesmo conjunto de dados:
db.myColl.find().sort({_id: 1}).skip(3).limit(6); db.myColl.find().sort({_id: 1}).limit(6).skip(3);