Definição
cursor.limit()Importante
Método mongosh
Este é um método
mongosh. Esta não é a documentação deNode.jsou de outros métodos de driver específicos da linguagem de programação.Na maioria dos casos, os métodos
mongoshfuncionam da mesma forma que os métodos legado do shellmongo. No entanto, alguns métodos legado não estão disponíveis emmongosh.Para a documentação do shell legado
mongo, consulte a documentação para a release correspondente do MongoDB Server:Para drivers da API do MongoDB, consulte a documentação do driver do MongoDB específica do idioma.
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);