$limit (agregação)
Definição
$limit
Limita o número de documentos passados para o estágio seguinte no pipeline.
Compatibilidade
Você pode utilizar o $limit
para implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do 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 de 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 somente os principais resultados n
conforme progride, em que n
é o limite especificado, e garante que o MongoDB somente precise armazenar itens n
na memória. Essa otimização ainda se aplica quando allowDiskUse
for true
, e os itens n
excederem o limite de memória de agregação.