Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Menu Docs
Página inicial do Docs
/ /

$limit (estágio de agregação )

$limit

Limita o número de documentos passados para o estágio seguinte no pipeline.

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

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.

Se estiver usando o estágio $limit com qualquer um dos seguintes:

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:

Os exemplos nesta página usam dados do conjunto de dados de amostra sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação autogerenciada do MongoDB , consulte Carregar o conjunto de dados de amostra. Se você fez modificações nos bancos de dados de amostra, talvez seja necessário descartar e recriar os bancos de dados para executar os exemplos nesta página.

Considere o seguinte exemplo:

db.movies.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.

Os exemplos de C# nesta página utilizam o banco de dados sample_mflix a partir dos conjuntos de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de exemplo, consulte Introdução na documentação do driver MongoDB .NET/C#.

A seguinte classe Movie modela os documentos na collection sample_mflix.movies:

[BsonIgnoreExtraElements]
public class Movie
{
[BsonId]
public ObjectId Id { get; set; }
[BsonElement("title")]
public string Title { get; set; } = null!;
[BsonElement("runtime")]
public int? Runtime { get; set; }
[BsonElement("rated")]
public string? Rated { get; set; }
[BsonElement("metacritic")]
public int Metacritic { get; set; }
}

Para usar o driver MongoDB .NET/C# para adicionar um estágio $limit a um pipeline de agregação, chame o método Limit() em um objeto PipelineDefinition.

O exemplo a seguir cria um estágio de pipeline que classifica os filmes por título e limita o resultado aos primeiros 5 documentos:

var pipeline = new EmptyPipelineDefinition<Movie>()
.Sort(Builders<Movie>.Sort.Ascending(m => m.Title))
.Limit(5);
{"_id": "...", "title": "!Women Art Revolution", "runtime": "...", "rated": "...", "metacritic": "..."}
{"_id": "...", "title": "#chicagoGirl: The Social Network Takes on a Dictator", "runtime": "...", "rated": "...", "metacritic": "..."}
{"_id": "...", "title": "$", "runtime": "...", "rated": "...", "metacritic": "..."}
{"_id": "...", "title": "$9.99", "runtime": "...", "rated": "...", "metacritic": "..."}
{"_id": "...", "title": "'71", "runtime": "...", "rated": "...", "metacritic": "..."}

Para usar o driver Node.js do MongoDB para adicionar um estágio $limit a um pipeline de agregação , use o operador $limit em um objeto de pipeline.

O exemplo a seguir cria um estágio de pipeline que limita o número de documentos retornados a 10. O exemplo em seguida executa o pipeline de agregação:

const pipeline = [{ $limit: 10 }];
const cursor = collection.aggregate(pipeline);
return cursor;

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.

Para aprender a usar $limit em um exemplo completo, veja o tutorial Filtrar dados.

Voltar

$indexStats

Receber um selo de habilidade

Domine "Os fundamentos da transformação de dados" gratuitamente!

Saiba mais

Nesta página