Docs Menu
Docs Home
/ /

$minN (operador de matriz)

$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 se resuelve en un entero positivo. El entero especifica el número de elementos de la matriz 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 se puede especificar un valor de n menor que 1.

  • $minN filtra null valores encontrados en la input matriz.

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

  • Si input se resuelve en un valor que no es una matriz, la operación de agregación genera un error.

  • Si input contiene elementos numéricos y de cadena, los elementos numéricos se ordenan antes que los elementos de cadena según el orden de comparación 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 para recuperar las dos puntuaciones más bajas de cada jugador. Las puntuaciones más bajas se devuelven en el nuevo $minN campo minScores creado $addFields por.

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