Definição
Retorna um único array que concatena os valores de array de um campo em um grupo de documentos.
O acumulador $concatArrays está disponível nestes estágios:
Observação
Desambiguação
Esta página descreve $concatArrays quando usado como um acumulador. Acumuladores retornam um único valor agregado em um grupo de documentos de entrada.
Você também pode usar $concatArrays nestes outros contextos:
$concatArrays (expression), que concatena dois ou mais arrays em um único array dentro de um único documento.$concatArrays (window function), que é usado no$setWindowFieldsestágio para concatenar os valores do array de um campo em uma janela de documentos.
Sintaxe
{ $concatArrays: [ <expression1>, <expression2>, ... ] }
Comportamento
Os argumentos que são null ou que resultam em null são incluídos nos resultados. Os argumentos que se referem a um campo ausente não são incluídos nos resultados.
Exemplo
O exemplo a seguir usa a coleção movies do conjunto de dados de amostra sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação, consulte Carregar o conjunto de dados de amostra.
O exemplo usa $concatArrays para concatenar o array genres de filmes agrupados por ano de lançamento:
db.movies.aggregate( [ { $match: { year: { $in: [1928, 1929] } } }, { $group: { _id: "$year", combinedGenres: { $concatArrays: "$genres" } } }, { $sort: { _id: 1 } } ] )
A operação usa $match para selecionar filmes lançados em 1928 e 1929, e, em seguida, agrupa os resultados por year. O campo combinedGenres concatena os array de genres de todos os filmes em cada grupo de ano.
Limitações
$concatArrays suporta apenas arrays e expressões que resolvem para uma array.