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.
Docs Menu

$median (operador de acumulación)

$median

Nuevo en la versión 7.0.

Devuelve una aproximación del valor mediana (50º percentil) de los documentos de 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 en un grupo de documentos de entrada.

También puede 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 50sobre los valores devueltos por esta expresión. input debe ser una expresión que se evalúe como un tipo numérico. Si la expresión no se evalúa como 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 un 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 un acumulador, $median siempre utiliza un algoritmo de aproximación. Como resultado, los percentiles calculados que $median devuelve en el mismo conjunto de datos podrían diferir en cada ejecución, debido a la pseudorandomidad en el algoritmo de aproximación t-digest. Adicionalmente, $median puede devolver un valor que difiere ligeramente de la verdadera mediana estadística.

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 la implementación autogestionada de MongoDB, consultar Cargar el conjunto de datos de muestra. Si realizó alguna modificación en las bases de datos de muestra, es posible que deba descartar y volver a crear las bases de datos para ejecutar los ejemplos de esta página.

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

En el pipeline anterior:

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

  • $group agrupa 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.