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.
Docs Menu

$concatArrays (operador de expresión)

Devuelve un único arreglo que concatena dos o más arreglos. $concatArrays se puede usar como un acumulador de agregación o como un operador de arreglo.

$concatArrays

$concatArrays está disponible como acumulador en estas etapas:

Cuando se usa como acumulador de agregación, $concatArrays tiene la siguiente sintaxis:

{ $concatArrays: "<array field>" }

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.

Cree una colección llamada sales con los siguientes 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 ejemplo muestra cómo puedes utilizar $concatArrays como acumulador. Este ejemplo combina los elementos de todos los arreglos items al agrupar en el campo location:

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

La operación devuelve el siguiente resultado:

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

Cuando se usa como operador de arreglo, $concatArrays tiene la siguiente sintaxis:

{ $concatArrays: [ <expression1>, <expression2>, ... ] }

Los operandos <expression> pueden ser cualquier expresión válida si se resuelven en una matriz. Para obtener más información sobre expresiones, consulte la sección Expresiones.

Si algún argumento se resuelve en un valor de null o se refiere a un campo que falta, $concatArrays devuelve null.

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

Cree una colección llamada warehouses con los siguientes 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: [ ] }
] )

El siguiente ejemplo concatena los arreglos instock y ordered:

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

La operación devuelve los siguientes resultados:

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

$concatArrays solo admite arreglos y expresiones que se resuelven en un arreglo.