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.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

$last (función de ventana)

$last

Devuelve el valor de una expresión para el último documento en una ventana.

Nota

Desambiguación

Esta página describe $last cuando se utiliza como función de ventana.

También puedes usar $last en estos otros contextos:

{
$setWindowFields: {
...
output: {
<field>: {
$last: <expression>
}
}
}
}

La función de ventana $last tiene los siguientes comportamientos para valores nulos y faltantes:

  • $last Convierte los valores de campo faltantes a null.

  • $last Devuelve null para ventanas vacías.

Los ejemplos de esta página utilizan datos del conjunto de datos sample_mflix. Para obtener más información sobre cómo cargar este conjunto de datos en su implementación autogestionada de MongoDB, consulte Cargar el conjunto de datos de ejemplo. Si realizó alguna modificación en las bases de datos de ejemplo, es posible que deba eliminarlas y volver a crearlas para ejecutar los ejemplos de esta página.

Este ejemplo utiliza $setWindowFields para particionar las películas con baja calificación según year, ordenarlas según imdb.rating en orden descendente e identificar la película con la calificación más baja de cada año. Cada documento incluye un campo que muestra el título de la película con la calificación más baja en la partición de ese año:

db.movies.aggregate( [
{
$match: {
year: { $in: [ 1999, 2000, 2001 ] },
"imdb.rating": { $lte: 3.5, $gt: 0 }
}
},
{
$setWindowFields: {
partitionBy: "$year",
sortBy: { "imdb.rating": -1, "title": 1 },
output: {
lowestRatedMovieInYear: {
$last: "$title",
window: {
documents: [ "unbounded", "unbounded" ]
}
}
}
}
},
{
$project: {
_id: 0,
title: 1,
year: 1,
"imdb.rating": 1,
lowestRatedMovieInYear: 1
}
},
{ $sort: { year: 1, "imdb.rating": -1, title: 1 } }
] )

En el pipeline anterior:

  • $match Filtros para películas estrenadas entre 1999 y 2001 con una calificación IMDb de 3.5 o inferior.

  • $setWindowFields divide las películas por year y las ordena por imdb.rating en orden descendente, con title como criterio de desempate. La etapa utiliza $last con una ventana definida como documents: [ "unbounded", "unbounded" ] para devolver el título de la película peor valorada en cada partición del año.

  • $project incluye solo title, year, imdb.rating y lowestRatedMovieInYear en la salida.

  • $sort Ordena los resultados por año, calificación y título.

Califique esta página