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

$first (función de ventana)

$first

Devuelve el valor de una expresión para el primer documento de una ventana.

Nota

Desambiguación

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

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

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

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

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

  • $first 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 por year, ordenarlas por imdb.rating en orden descendente e identificar la película mejor valorada de cada año. Cada documento incluye un campo que muestra el título de la película mejor valorada estrenada en ese año:

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

En el pipeline anterior:

  • $match Filtros para películas de 1999-2001 con una calificación IMDb de 8.5 o superior.

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

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

  • $sort Ordena los resultados por año y calificación.

Califique esta página