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

$max ( operador acumulador )

$max

Retorna o valor máximo. $max compara o valor e o tipo, usando a ordem de comparação BSON especificada para valores de tipos diferentes.

O acumulador $max está disponível nos seguintes estágios:

Observação

Desambiguação

Esta página descreve $max quando usado como acumulador. Os acumuladores retornam um único valor agregado como soma, máximo ou mínimo em um grupo de documentos de entrada.

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

{ $max: <expression> }

$max compara dados de entrada seguindo a ordem de Comparação BSON para determinar o tipo de saída apropriado. Quando os dados de entrada contêm vários tipos de dados, o tipo de saída $max é o mais alto na ordem de comparação.

Se alguns, mas não todos, valores de entrada para $max estiverem null ou ausentes, $max considerará apenas os valores não nulos e não ausentes.

Se todos os valores de entrada para $max estiverem null ou ausentes, $max retornará null.

No estágio $group, se a expressão se resolver em uma array, $max não percorrerá a array e compara a array como um todo.

Se vários valores forem comparados como iguais, $max poderá retornar qualquer um desses valores. Não há garantias de qual valor igual $max retorna.

Por exemplo, em um agrupamento que não diferencia maiúsculas de minúsculas, "a" e "A" podem ser comparados como iguais. Não há garantias de qual será retornado.

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 $max em um estágio $group para encontrar a classificação mais alta do IMDb e o maior tempo de execução para filmes em cada categoria de classificação:

db.movies.aggregate( [
{
$match: {
rated: { $in: [ "G", "PG", "PG-13", "R" ] },
"imdb.rating": { $gt: 0 },
runtime: { $gt: 0 }
}
},
{ $sort: { rated: 1 } },
{
$group: {
_id: "$rated",
maxImdbRating: { $max: "$imdb.rating" },
maxRuntime: { $max: "$runtime" }
}
},
{ $sort: { _id: 1 } }
] )

O pipeline anterior:

  • Usa $match para filtrar filmes com uma classificação comum nos EUA, uma classificação válida do IMDb e um tempo de execução conhecido.

  • Classifica documentos por rated para garantir uma ordem de agrupamento consistente.

  • Usa $group com $max para encontrar a classificação mais alta do IMDb e o maior tempo de execução para cada grupo rated.

  • Classifica o resultado alfabeticamente por categoria de classificação.

Avalie esta página