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 (expressão)

$median

Novidades na versão 7.0.

Retorna a mediana (50º percentil) de uma matriz de valores numéricos.

Observação

Desambiguação

Esta página descreve $median quando usado como uma expressão, que calcula a mediana de uma array de valores.

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

{
$median: {
input: <expression>,
method: <string>
}
}
Campo
Tipo
necessidade
Descrição

input

Array

Obrigatório

Pode ser um dos seguintes:

  • Uma expressão que se torna uma array. Por exemplo , $grades, onde o campo de documento $grades contém uma array de valores numéricos.

  • Uma array de expressões, cada uma das quais avalia para um valor numérico. Por exemplo, [ "$field1", "$field2", "$field3" ].

$median calcula a mediana em todos os valores na array. Valores não numéricos são ignorados.

method

String

Obrigatório

O método que o MongoDB usa para calcular o valor mediano. O método deve ser 'approximate'.

Quando $median é utilizado como uma expressão, ele sempre usa um algoritmo de cálculo de percentil preciso em vez de um aproximado, mesmo quando method: "approximate" é especificado.

Isso ocorre porque as expressões operam em arrays de tamanho limitado, onde é aceitável manter todos os valores de entrada na memória.

O exemplo a seguir utiliza uma coleção testScores para demonstrar a forma de entrada de array de $median.

Crie a coleção testScores:

db.testScores.insertMany( [
{ studentId: "2345", scores: [ 62, 81, 80, 75, 68 ] },
{ studentId: "2356", scores: [ 60, 83, 79, 72, 65 ] },
{ studentId: "2358", scores: [ 67, 82, 78, 70, 84 ] },
{ studentId: "2367", scores: [ 64, 72, 77, 58, 91 ] },
{ studentId: "2369", scores: [ 60, 53, 72, 85, 63 ] }
] )

O pipeline a seguir usa $median para calcular a pontuação mediana do teste para cada aluno:

db.testScores.aggregate( [
{
$project: {
_id: 0,
studentId: 1,
testMedians: {
$median: {
input: "$scores",
method: 'approximate'
}
}
}
}
] )

No pipeline anterior:

  • $project com $median localiza o valor mediano na array scores para cada documento e o retorna como testMedians.

  • Cada resultado reflete a pontuação média nas pontuações dos testes registrados do aluno.