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

$top (operador de expresión)

$top

Novedad 8.3 en la versión.:

Devuelve el elemento superior dentro de un arreglo según el orden de clasificación especificado.

Nota

Desambiguación

Esta página describe el operador de expresión $top. Para el $top operador de acumulación, consulta $top (operador de acumulación).

Cuando se utiliza como operador de expresión, $top tiene la siguiente sintaxis:

{
$top:
{
sortBy: <expression>,
input: <expression>
}
}
Campo
Necesidad
Descripción

sortBy

Requerido

Especifica el orden de los resultados. Consulte Comportamiento de sortBy ordenación para obtener más información sobre los valores.

entrada

Requerido

El arreglo que $top evalúa.

MongoDB ordena el arreglo input en función del valor sortBy. La siguiente tabla proporciona ejemplos de diferentes opciones de clasificación:

input
sortBy
Ordenado input
[ 8, 3, 1, 10]

1

[1, 3, 8, 10]
[ 8, 3, 1, 10]

-1

[10, 8, 3, 1]
[
{ a: 1, b: 1 },
{ a: 2, b: 2 },
{ a: 2, b: 1 }
]

{ a: 1, b: 1 }

[
{ a: 1, b: 1 },
{ a: 2, b: 1 },
{ a: 2, b: 2 }
]

El campo input debe resolver en un arreglo. En caso de que especifiques un input que no sea un arreglo, MongoDB arrojará un error.

El siguiente ejemplo utiliza la colección movies del conjunto de datos de muestra sample_mflix. Para obtener más información sobre cómo cargar este conjunto de datos en su implementación, consulte Cargar el conjunto de datos de muestra.

La colección movies contiene documentos que se asemejan al siguiente ejemplo:

{
_id: ObjectId('573a1396f29313caabce4a9a'),
year: 1972,
genres: [ 'Crime', 'Drama' ],
title: 'The Godfather',
cast: [ 'Marlon Brando', 'Al Pacino', 'James Caan', 'Richard S. Castellano' ],
directors: [ 'Francis Ford Coppola' ],
runtime: 175,
...
}

La siguiente pipeline de agregación utiliza $top en el arreglo cast para devolver el primer miembro del reparto en orden alfabético para una película especificada:

db.movies.aggregate([
{
$match: { title: "The Godfather" }
},
{
$project: {
_id: 0,
title: 1,
firstCastMemberAlphabetically: {
$top: {
sortBy: 1,
input: "$cast"
}
}
}
}
])
[
{
title: 'The Godfather',
firstCastMemberAlphabetically: 'Al Pacino'
}
]

En este ejemplo, $top ordena el arreglo de cast existente en orden alfabético ascendente y devuelve el primer valor.