Definición
Devuelve el primer elemento de un array.
Nota
Desambiguación
Esta página describe $first cuando se usa como una expresión, que devuelve el primer elemento de una matriz.
También puedes usar $first en estos otros contextos:
$first (accumulator), utilizado en la agrupación para devolver el primer valor de cada grupo.$first (window function), utilizado en la etapa$setWindowFieldspara devolver un valor para el primer documento en una ventana.
Sintaxis
{ $first: <expression> }
El <expression> debe evaluarse como un array.
Comportamiento
Si la expresión del operando se evalúa como una matriz,
$firstdevuelve el primer elemento de esa matriz.Si el array está vacío,
$firstdevuelvenull.Si la expresión se evalúa como
nullo hace referencia a un campo faltante,$firstdevuelvenull.
Ejemplo
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.
El siguiente ejemplo utiliza $first para devolver el actor mejor acreditado de cada película. En el conjunto de datos sample_mflix, el array cast enumera a los actores en orden de acreditación, por lo que el primer elemento es el actor mejor acreditado:
db.movies.aggregate( [ { $match: { title: { $in: [ "The Godfather", "Pulp Fiction", "Forrest Gump" ] } } }, { $addFields: { topBilledActor: { $first: "$cast" } } }, { $project: { _id: 0, title: 1, cast: 1, topBilledActor: 1 } }, { $sort: { title: 1 } } ] )
En el pipeline anterior:
$matchFiltros para tres películas específicas.$addFieldscon$firstcrea un nuevo campotopBilledActorque contiene el primer elemento del arraycast.$projectincluye solo los campostitle,castytopBilledActoren la salida.$sortordena los resultados por título.