$concatArrays (Concatenar Arrays)
Última atualização: 2026-10-09
$concatArrays (Concatenar Arrays)
$concatArrays mescla vários arrays em um só sem deduplicação. Como expressão de array, é comum em $project e $addFields; desde o MongoDB 8.1, ele também pode atuar como acumulador de $group, concatenando campos de array entre os documentos do grupo. Ao contrário de $setUnion, duplicatas são mantidas.
| Categoria | Acumuladores |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $concatArrays: [ <array1>, <array2>, ... ] }
Retorno:Nova matriz de todas as matrizes de entrada concatenadas (duplicatas mantidas)
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $concatArrays: adiciona uma tag em $project
db.products.aggregate([
{ $project: { allTags: { $concatArrays: ['$tags', ['hot']] } } }
])
Saída:
{ "_id": 1, "allTags": ["a", "b", "hot"] }
📌 Notas
- Sem deduplicação — cada elemento é mantido
- Todas as entradas precisam ser arrays, senão o estágio gera erro
- Pode ser usado como acumulador de $group desde o MongoDB 8.1
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
Q$concatArrays deduplica?
ANão; use $setUnion quando precisar de deduplicação.
QE se uma entrada não for um array?
AGera erro; todas as entradas precisam ser arrays — verifique antes com $isArray.
QEle pode ser usado como acumulador de $group?
ADesde o MongoDB 8.1, sim — concatenando campos de array entre os documentos do grupo.