Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu 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 $limit estágio tem o seguinte formato 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 $limit agregação do pipeline tem um 64limite de número inteiro de bits. O MongoDB retorna um erro de argumento inválido quando os valores excedem esse limite.

Se estiver usando o estágio com qualquer um dos $limit 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 }
])

Esta operação retorna apenas os primeiros 5 documentos passados pelo pipeline. não tem efeito no conteúdo dos documentos que ele$limit 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("year")]
public int? Year { get; set; }
[BsonElement("runtime")]
public int? Runtime { get; set; }
[BsonElement("rated")]
public string? Rated { get; set; }
[BsonElement("metacritic")]
public int Metacritic { get; set; }
[BsonElement("plot")]
public string? Plot { get; set; }
[BsonElement("type")]
public string? Type { get; set; }
[BsonElement("cast")]
public string[]? Cast { get; set; }
[BsonElement("directors")]
public string[]? Directors { get; set; }
[BsonElement("writers")]
public string[]? Writers { get; set; }
[BsonElement("imdb")]
public ImdbData? Imdb { get; set; }
}

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

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": "...", "imdb": "..."}
{"_id": "...", "title": "#chicagoGirl: The Social Network Takes on a Dictator", "runtime": "...", "rated": "...", "metacritic": "...", "imdb": "..."}
{"_id": "...", "title": "$", "runtime": "...", "rated": "...", "metacritic": "...", "imdb": "..."}
{"_id": "...", "title": "$9.99", "runtime": "...", "rated": "...", "metacritic": "...", "imdb": "..."}
{"_id": "...", "title": "'71", "runtime": "...", "rated": "...", "metacritic": "...", "imdb": "..."}

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$sortprecede um$limite não há estágios intermediários que modifiquem o número de documentos, o otimizador pode unir o$limitao$sort. Isso permite que a operação$sortmantenha 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 agregação .

Para saber como usar em um $limit exemplo completo, consulte o tutorial Filtrar dados.

Receber um selo de habilidade

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

Saiba mais