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

$median (operador acumulador )

$median

Novidades na versão 7.0.

Retorna uma aproximação da mediana (50º percentil) de documentos em um grupo.

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

Observação

Desambiguação

Esta página descreve $median quando usado como acumulador. Os acumuladores retornam um valor agregado em um grupo de documentos de entrada.

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

{
$median: {
input: <number>,
method: <string>
}
}

$percentile usa os seguintes campos:

Campo
Tipo
necessidade
Descrição

input

Expressão

Obrigatório

$percentile calcula o 50º percentil sobre os valores retornados por esta expressão. input deve ser uma expressão que avalia para um tipo numérico. Se a expressão não avaliar para um tipo numérico, o cálculo $percentile ignorará este valor.

method

String

Obrigatório

O método que o mongod utiliza para calcular o valor do percentil nº 50. O método deve ser 'approximate'.

Quando utilizado como acumulador, $median:

  • Calcula um único resultado para todos os documentos no grupo.

  • Usa o algoritmo t-digest para cálculo de percentis aproximados. A aproximação é necessária para calcular a mediana usando uma estrutura de dados de tamanho limitado.

Quando utilizado como acumulador, o $median sempre utiliza um algoritmo de aproximação. Como resultado, os retornos $median dos percentis calculados no mesmo conjunto de dados podem diferir em cada execução, devido à pseudo-aleatório no algoritmo de aproximação t-digest. Além disso, $median pode retornar um valor que difere ligeiramente da verdadeira mediana estatística.

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 $median para calcular a classificação mediana do IMDb de filmes de ação por ano, de 2000 a 2004:

db.movies.aggregate( [
{
$match: {
genres: "Action",
year: { $gte: 2000, $lte: 2004 },
"imdb.rating": { $gt: 0 }
}
},
{
$group: {
_id: "$year",
medianRating: {
$median: {
input: "$imdb.rating",
method: "approximate"
}
}
}
},
{ $sort: { _id: 1 } }
] )

No pipeline anterior:

  • $match filtros para filmes de ação lançados entre 2000 e 2004 com uma classificação válida do IMDb.

  • $group agrupa documentos por year e usa $median para calcular a mediana imdb.rating em todos os filmes de ação em cada ano.

  • $sort classifica os resultados por ano em ordem crescente.