$limit (agregação)
Definição
$limit
Limita o número de documentos passados para o próximo estágio nopipeline .
Compatibilidade
Você pode utilizar o $limit
para implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem
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
Sintaxe
O estágio $limit
tem a seguinte forma de protótipo:
{ $limit: <positive 64-bit integer> }
$limit
recebe um número inteiro positivo que especifica o número máximo de documentos a serem repassados.
Observação
A partir do MongoDB 5.0, a agregação do pipeline $limit
tem um limite de número inteiro 64bits. Os valores passados para o pipeline que excedem esse limite retornarão um erro de argumento inválido.
Comportamento
Utilizando $limit com Resultados ordenados
Se estiver usando o estágio $limit
com qualquer um dos seguintes:
a fase de agregação
$sort
,o método
sort()
, ouo campo
sort
ao comandofindAndModify
ou ao métodofindAndModify()
shell,
Certifique-se de incluir pelo menos um campo em sua classificação que contenha valores exclusivos, antes de passar os resultados para o estágio $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 o seguinte para obter mais informações sobre cada um deles:
Exemplo
Considere o seguinte exemplo:
db.article.aggregate([ { $limit : 5 } ]);
Essa operação retorna apenas os 5 primeiros documentos passados pelo pipeline. $limit
não tem efeito sobre o conteúdo dos documentos que passa.
Observação
Quando um $sort
precede um $limit
e não há estágios intermediários que modifiquem o número de documentos, o otimizador pode unir o $limit
ao $sort
. Isso permite que a operação $sort
mantenha apenas os principais resultados n
à medida que avança, onde n
é o limite especificado, e garante que o MongoDB só precise armazenar n
itens na memória. Essa otimização também se aplica quando allowDiskUse
for true
e os itens n
excederem o limite de memória de aggregation.