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çãoLIMITem 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>)
Compatibilidade
Esse método está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Observação
Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
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. Assim, com um limite negativo, se o set limitado não se encaixar 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 ele não solicitará um lote subsequente via getMore.
Usando limit() com 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 limit() com 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);