Definición
Devuelve una única matriz que concatena los valores de una matriz 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 a partir de un grupo de documentos de entrada.
También puedes usar $concatArrays en estos otros contextos:
$concatArrays (expression), que concatena dos o más matrices en una sola matriz dentro de un mismo documento.$concatArrays (window function), que se utiliza en la etapa$setWindowFieldspara concatenar los valores de la matriz de un campo a través de una ventana de documentos.
Sintaxis
{ $concatArrays: "<array field>" }
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 arrays genres de películas agrupadas 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, y luego agrupa los resultados por year. El campo combinedGenres concatena los arreglos genres de todas las películas en cada grupo de año.
Limitaciones
$concatArrays solo admite arreglos y expresiones que se resuelven en un arreglo.