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

$push (operador de acumulación)

$push

Devuelve una matriz con todos los valores que resultan de aplicar una expresión a cada documento de un grupo.

El acumulador $push está disponible en estas etapas:

Nota

Desambiguación

Esta página describe $push cuando se utiliza como acumulador. Los acumuladores devuelven un valor agregado a partir de un grupo de documentos de entrada.

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

{ $push: <expression> }

Para obtener más información sobre las expresiones, consulta Expresiones.

Cuando se utiliza $push como acumulador, el orden de los documentos que ingresan a la canalización determina el orden de los documentos en el array de salida. Para garantizar un orden definido, coloque una etapa $sort antes de la etapa $group.

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.

La siguiente operación agrupa las películas por director y utiliza el acumulador $push para recopilar el género principal de cada película dirigida por ese director.

db.movies.aggregate( [
{
$match: {
year: { $gte: 2010, $lte: 2015 },
genres: { $exists: true, $ne: [] },
directors: { $exists: true, $ne: [] }
}
},
{
$unwind: "$directors"
},
{
$group: {
_id: "$directors",
genres: { $push: { $first: "$genres" } }
}
},
{
$sort: { _id: 1 }
},
{
$limit: 5
}
] )

La tubería precedente:

  • Utiliza $match para filtrar las películas de 2010-2015 que tienen información de género y director.

  • Utiliza $unwind para crear un documento separado para cada director en el array directors.

  • Agrupa los documentos resultantes por director y utiliza $push para recopilar el género principal de cada película.

  • Ordena los resultados por nombre del director en orden alfabético.

  • Limita la producción a cinco directores.

En la salida, A.R. Murugadoss tiene Action listado dos veces porque dirigió dos películas con Action como género principal. Esto demuestra que $push incluye valores duplicados, a diferencia de $addToSet, que devuelve una matriz de valores únicos.