Definición
Devuelve un único arreglo que concatena los valores de arreglo de un campo en un grupo de documentos.
El acumulador $concatArrays está disponible en estas etapas:
Nota
Desambiguación
Esta página describe $concatArrays cuando se utiliza como acumulador. Los acumuladores devuelven un único valor agregado en un grupo de documentos de entrada.
También puede usar $concatArrays en estos otros contextos:
$concatArrays (expression), que concatena dos o más arreglos en un solo arreglo dentro de un solo documento.$concatArrays (window function), que se utiliza en la$setWindowFieldsetapa para concatenar los valores del arreglo de un campo en una ventana de documentos.
Sintaxis
{ $concatArrays: [ <expression1>, <expression2>, ... ] }
Comportamiento
Se incluirán en los resultados los argumentos que sean null o se resuelvan en null. Los argumentos que se refieren a un campo que falta no se incluyen en los resultados.
Ejemplo
El siguiente ejemplo utiliza la colección movies del conjunto de datos de muestra 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 muestra.
El ejemplo utiliza $concatArrays para concatenar los arreglos genres de películas agrupados por año de lanzamiento:
db.movies.aggregate( [ { $match: { year: { $in: [1928, 1929] } } }, { $group: { _id: "$year", combinedGenres: { $concatArrays: "$genres" } } }, { $sort: { _id: 1 } } ] )
La operación utiliza $match para seleccionar películas estrenadas en 1928 y 1929, luego agrupa los resultados por year. El campo combinedGenres concatena los arreglos genres de todas las películas de cada grupo de año.
Limitaciones
$concatArrays solo admite arreglos y expresiones que se resuelven en un arreglo.