Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$minN (operador de expresión)

$minN

Nuevo en la versión 5.2.

Devuelve los n valores más pequeños de una matriz.

Tip

$maxN

$minN tiene la siguiente sintaxis:

{ $minN: { n: <expression>, input: <expression> } }
Campo
Descripción

n

Una expresión que resuelve a un entero positivo. El entero especifica el número de elementos del arreglo que $minN devuelve.

input

Una expresión que se resuelve en la matriz desde la cual se devolverán los n elementos mínimos.

  • No puedes especificar un valor de n menor que 1.

  • $minN filtra los valores de null encontrados en el arreglo input.

  • Si el n especificado es mayor o igual al número de elementos en el arreglo input, $minN devuelve todos los elementos en el arreglo input.

  • Si input resulta en un valor que no es un arreglo, la operación de agregación genera errores.

  • Si input contiene elementos numéricos y de string, los elementos numéricos se ordenan antes que los de string siguiendo el orden de comparación de BSON.

Crea una colección scores con los siguientes documentos:

db.scores.insertMany([
{ "playerId" : 1, "score" : [ 1, 2, 3 ] },
{ "playerId" : 2, "score" : [ 12, 90, 7, 89, 8 ] },
{ "playerId" : 3, "score" : [ null ] },
{ "playerId" : 4, "score" : [ ] },
{ "playerId" : 5, "score" : [ 1293, "2", 3489, 9 ]}
])

El siguiente ejemplo utiliza el operador $minN para recuperar las dos puntuaciones más bajas de cada jugador. Las puntuaciones más bajas se devuelven en el nuevo campo minScores creado por $addFields.

db.scores.aggregate([
{ $addFields: { minScores: { $minN: { n: 2, input: "$score" } } } }
])

La operación devuelve los siguientes resultados:

[{
"playerId": 1,
"score": [ 1, 2, 3 ],
"minScores": [ 1, 2 ]
},
{
"playerId": 2,
"score": [ 12, 90, 7, 89, 8 ],
"minScores": [ 7, 8 ]
},
{
"playerId": 3,
"score": [ null ],
"minScores": [ ]
},
{
"playerId": 4,
"score": [ ],
"minScores": [ ]
},
{
"playerId": 5,
"score": [ 1293, "2", 3489, 9 ],
"minScores": [ 9, 1293 ]
}]

Volver

$meta

En esta página