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

$maxN (operador de expresión)

$maxN

Nuevo en la versión 5.2.

Devuelve los valores más grandes de n en un arreglo.

$maxN tiene la siguiente sintaxis:

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

n

Una expresión que se resuelve en un número entero positivo. El número entero especifica la cantidad de elementos de la matriz que $maxN devuelve.

input

Una expresión que resuelve el arreglo desde el cual devolver los elementos máximos de n.

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

  • $maxN filtra null los valores encontrados en el input array.

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

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

  • Si input contiene tanto elementos numéricos como de cadena, los elementos de cadena se ordenan antes que los numéricos de acuerdo con 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 altas de cada jugador. Las puntuaciones más altas se devuelven en el nuevo $maxN campo maxScores creado $addFields por.

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

La operación devuelve los siguientes resultados:

[{
"playerId": 1,
"score": [ 1, 2, 3 ],
"maxScores": [ 3, 2 ]
},
{
"playerId": 2,
"score": [ 12, 90, 7, 89, 8 ],
"maxScores": [ 90, 89 ]
},
{
"playerId": 3,
"score": [ null ],
"maxScores": [ ]
},
{
"playerId": 4,
"score": [ ],
"maxScores": [ ]
},
{
"playerId": 5,
"score": [ 1293, "2", 3489, 9 ],
"maxScores": [ "2", 3489 ]
}]
Califique esta página