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.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

$maxN (operador de expressão )

$maxN

Retorna os maiores valores de n em uma array.

Observação

Outros usos de $maxN

Esta página descreve $maxN quando usado como uma expressão, que retorna os maiores valores n de uma array.

Você também pode usar $maxN nestes outros contextos:

{ $maxN: { n: <expression>, input: <expression> } }
Campo
Tipo
Descrição

n

Expressão

Especifica o número de elementos a serem retornados. Deve resolver para um número inteiro positivo.

input

Expressão

Especifica a array de entrada a partir da qual retornar o máximo de elementos n.

  • $maxN filtra valores null.

  • Se a array input contiver menos de n elementos, $maxN retornará todos os elementos da array.

  • Se input for resolvido para um valor que não seja de array, a operação retornará um erro.

  • Se input contiver elementos numéricos e de string, os elementos de string serão classificados antes dos elementos numéricos de acordo com a ordem de comparação de JSON.

Os exemplos nesta página usam dados do conjunto de dados 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.

O exemplo a seguir usa $maxN para retornar os dois últimos membros do elenco em ordem alfabética para cada filme, armazenados em um novo campo topTwoCast criado por $addFields.

db.movies.aggregate( [
{
$match: {
title: { $in: [ "The Godfather", "Spirited Away", "The Dark Knight" ] }
}
},
{
$addFields: {
topTwoCast: { $maxN: { n: 2, input: "$cast" } }
}
},
{
$project: {
_id: 0,
title: 1,
cast: 1,
topTwoCast: 1
}
},
{
$sort: { title: 1 }
}
] )

O pipeline anterior:

  • Utiliza $match para filtrar três filmes específicos.

  • Usa $addFields com $maxN para criar um novo campo topTwoCast contendo os dois valores alfabeticamente últimos da array cast com n: 2.

  • Usa $project para incluir somente os campos title, cast e topTwoCast no resultado.

  • Utiliza $sort para classificar os resultados por título.