$concatArrays (Concatenar Arrays)
Última atualização: 2026-10-09
$concatArrays (Concatenar Arrays)
$concatArrays mescla dois ou mais arrays em um único array novo. É comumente usado para combinar listas de tags, registros de histórico ou dados paginados. Cada argumento deve resultar em um array; se qualquer argumento for null ou estiver ausente, todo o resultado é null. Ele nunca muta os arrays de origem, retornando um array mesclado novo, o que o torna ideal para compor campos dentro de $addFields ou $project. Diferente de $concat, que apenas une strings, $concatArrays trabalha exclusivamente com arrays.
| Categoria | Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $concatArrays: [ <array1>, <array2>, ... ] }
⚙️ Parâmetros
| array | Expressões de matriz a mesclar; pelo menos duas. |
|---|
Retorno:Uma nova matriz mesclada; null se qualquer argumento for null ou estiver ausente
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $concatArrays: mesclar tags e aliases
db.products.aggregate([
{ $project: {
allTags: { $concatArrays: ['$tags', '$aliases'] }
} }
])
Saída:
{ '_id': 1, 'allTags': [ 'a', 'b', 'c', 'd' ] }
📌 Notas
- Todos os argumentos devem ser arrays; divida strings com $split antes ou una-as com $concat
- Qualquer argumento null torna todo o resultado null; proteja com $ifNull
- Retorna um array novo e nunca toca no documento de origem
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO $concatArrays consegue unir strings?
ANão, ele aceita apenas arrays. Una strings com $concat, ou divida-as em arrays primeiro.
QO que acontece se um argumento for null?
ATodo o resultado vira null. Substitua null por um array vazio via $ifNull.
QComo $concatArrays difere de $push?
A$push acumula elementos em $group, enquanto $concatArrays mescla arrays existentes dentro de uma expressão.