Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

$concatArrays (operador de expressão )

Retorna uma única array que concatena duas ou mais arrays. $concatArrays pode ser usado como acumulador de agregação ou operador de array.

$concatArrays

$concatArrays está disponível como acumulador nestes estágios:

Quando usado como acumulador de agregação, $concatArrays tem a seguinte sintaxe:

{ $concatArrays: "<array field>" }

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.

Crie uma coleção denominada sales com os seguintes documentos:

db.sales.insertMany( [
{
_id: 1,
items: [ "laptop", "tablet" ],
location: "NYC"
},
{
_id: 2,
items: [ "phone", "tablet" ],
location: "NYC"
},
{
_id: 3,
location: "NYC"
},
{
_id: 4,
items: [ "desktop", { "accessories": [ "mouse", "keyboard"] } ],
location: "NYC"
}
] )

Este exemplo mostra como você pode utilizar o $concatArrays como acumulador. Este exemplo combina os elementos de todas as arrays items ao agrupar no campo location :

db.sales.aggregate( [
{
$group: {
_id: "$location",
array: { "$concatArrays": "$items" }
}
}
] )

A operação retorna o seguinte resultado:

[
{
"_id": "NYC",
"array": [
"laptop", "tablet", "phone", "tablet", "desktop",
{ "accessories": [ "mouse", "keyboard"] }
]
}
]
$concatArrays

Se utilizado como operador de array, $concatArrays tem a seguinte sintaxe:

{ $concatArrays: [ <array1>, <array2>, ... ] }

As expressões do <array> podem ser qualquer expressão válida desde que resolvam para uma array. Para mais informações sobre expressões, consulte Expressões.

Caso algum argumento seja resolvido com um valor null ou caso algum fragmento seja destinado a um campo ausente, $concatArrays retornará null.

Exemplo
Resultados
{ $concatArrays: [
[ "hello", " "], [ "world" ]
] }
[ "hello", " ", "world" ]
{ $concatArrays: [
[ "hello", " "],
[ [ "world" ], "again"]
] }
[ "hello", " ", [ "world" ], "again" ]

Crie uma coleção denominada warehouses com os seguintes documentos:

db.warehouses.insertMany( [
{ _id : 1, instock: [ "chocolate" ], ordered: [ "butter", "apples" ] },
{ _id : 2, instock: [ "apples", "pudding", "pie" ] },
{ _id : 3, instock: [ "pears", "pecans" ], ordered: [ "cherries" ] },
{ _id : 4, instock: [ "ice cream" ], ordered: [ ] }
] )

O exemplo a seguir concatena as arrays instock e ordered :

db.warehouses.aggregate( [
{ $project: { items: { $concatArrays: [ "$instock", "$ordered" ] } } }
] )

A operação retorna os seguintes resultados:

[
{ _id : 1, items : [ "chocolate", "butter", "apples" ] },
{ _id : 2, items : null },
{ _id : 3, items : [ "pears", "pecans", "cherries" ] },
{ _id : 4, items : [ "ice cream" ] }
]

$concatArrays suporta apenas arrays e expressões que resolvem para uma array.