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
/ /
Expresiones

$bottomN (operador de expresión)

$bottomN

Nuevo en la versión 8.3.

Devuelve los últimos n elementos de un array según el orden de clasificación especificado. Si el array contiene menos de n elementos, $bottomN devuelve todos los elementos del array.

Nota

Desambiguación

Esta página describe el operador de expresión $bottomN. Para el operador acumulador $bottomN, consulte $bottomN (operador acumulador).

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

{
$bottomN:
{
n: <expression>,
sortBy: { <field1>: <sort order>, <field2>: <sort order> ... },
input: <expression>
}
}
Campo
Necesidad
Descripción

n

Requerido

El número de elementos del array que se van a devolver.

sortBy

Requerido

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

entrada

Requerido

El array que $bottomN evalúa.

MongoDB ordena el array input en función del valor sortBy. La siguiente tabla proporciona ejemplos de diferentes opciones de ordenació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 ser un array. Si especifica un input que no sea un array, MongoDB generará un error.

El siguiente ejemplo utiliza la colección movies de la Conjunto de datos de ejemplo 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 ejemplo.

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 canalización de agregación utiliza $bottomN en el array cast:

db.movies.aggregate([
{
$match: { title: "The Godfather" }
},
{
$project: {
_id: 0,
title: 1,
lastThreeCastMembersAlphabetically: {
$bottomN: {
n: 3,
sortBy: 1,
input: "$cast"
}
}
}
}
])
[
{
title: 'The Godfather',
lastThreeCastMembersAlphabetically: [ 'James Caan', 'Marlon Brando', 'Richard S. Castellano' ]
}
]

En este ejemplo, $bottomN ordena el array cast existente en orden alfabético ascendente y devuelve los últimos tres valores.

En esta página