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

$mediana (expresión)

$median

Nuevo en la versión 7.0.

Devuelve la mediana (percentil 50) de una matriz de valores numéricos.

Nota

Desambiguación

Esta página describe $median cuando se utiliza como una expresión que calcula la mediana de una matriz de valores.

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

{
$median: {
input: <expression>,
method: <string>
}
}
Campo
Tipo
Necesidad
Descripción

input

Arreglo

Requerido

Puede ser cualquiera de las dos:

  • Una expresión que se resuelve en una matriz. Por ejemplo, $grades, donde el campo del documento $grades contiene una matriz de valores numéricos.

  • Una matriz de expresiones, cada una de las cuales se evalúa a un valor numérico. Por ejemplo, [ "$field1", "$field2", "$field3" ].

$median Calcula la mediana de todos los valores de la matriz. Los valores no numéricos se ignoran.

method

String

Requerido

El método que usa MongoDB para calcular el valor mediano. El método debe ser 'approximate'.

Cuando $median se usa como expresión, siempre usa un algoritmo de cálculo de percentil preciso en lugar de uno aproximado, incluso cuando se especifica method: "approximate".

Esto se debe a que las expresiones operan sobre matrices de tamaño limitado, donde es aceptable mantener todos los valores de entrada en la memoria.

El siguiente ejemplo utiliza una colección testScores para demostrar el formato de entrada de matriz de $median.

Crear la colección 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 ] }
] )

El siguiente proceso utiliza $median para calcular la puntuación media de la prueba para cada estudiante:

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

En el pipeline anterior:

  • $project con $median encuentra el valor mediano en el array scores para cada documento y lo devuelve como testMedians.

  • Cada resultado refleja la puntuación media obtenida en todas las pruebas registradas por ese estudiante.