Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

$median (operador de acumulación)

$median

Nuevo en la versión 7.0.

Devuelve una aproximación del valor mediano (percentil 50) de los documentos en un grupo.

El acumulador $median está disponible en estas etapas:

Nota

Desambiguación

Esta página describe $median cuando se utiliza como acumulador. Los acumuladores devuelven un valor agregado a partir de un grupo de documentos de entrada.

También puedes usar $median en estos otros contextos:

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

$percentile requiere los siguientes campos:

Campo
Tipo
Necesidad
Descripción

input

expresión

Requerido

$percentile Calcula el percentil 50 sobre los valores devueltos por esta expresión. input debe ser una expresión que se evalúe a un tipo numérico. Si la expresión no se evalúa a un tipo numérico, el cálculo $percentile ignora ese valor.

method

String

Requerido

El método que mongod usa para calcular el valor del 50º percentil. El método debe ser 'approximate'.

Cuando se utiliza como acumulador, $median:

  • Calcula un único resultado para todos los documentos del grupo.

  • Utiliza el algoritmo t-digest para el cálculo de percentiles aproximados. La aproximación es necesaria para calcular la mediana utilizando una estructura de datos de tamaño limitado.

Cuando se utiliza como acumulador, $median siempre emplea un algoritmo de aproximación. Por consiguiente, los percentiles calculados que $median devuelve sobre el mismo conjunto de datos pueden variar en cada ejecución, debido a la pseudoaleatoriedad del algoritmo de aproximación t-digest. Además, $median puede devolver un valor que difiere ligeramente de la mediana estadística real.

Los ejemplos de esta página utilizan datos del conjunto de datos sample_mflix. Para obtener más información sobre cómo cargar este conjunto de datos en su implementación autogestionada de MongoDB, consulte Cargar el conjunto de datos de ejemplo. Si realizó alguna modificación en las bases de datos de ejemplo, es posible que deba eliminarlas y volver a crearlas para ejecutar los ejemplos de esta página.

El siguiente ejemplo utiliza $median para calcular la calificación mediana de IMDb de las películas de acción por año desde 2000 hasta 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 } }
] )

En el pipeline anterior:

  • $match Filtros para películas de acción estrenadas entre 2000 y 2004 con una calificación válida de IMDb.

  • $group agrupa los documentos por year y utiliza $median para calcular la mediana imdb.rating de todas las películas de acción de cada año.

  • $sort ordena los resultados por año en orden ascendente.