$setUnion (União de Conjuntos)

Última atualização: 2026-10-09

$setUnion (União de Conjuntos)

$setUnion retorna a união de dois ou mais arrays, deduplicada, sem ordem de elementos garantida. Como expressão de conjunto, é comum em $project e $addFields; desde o MongoDB 8.1, ele também pode atuar como acumulador de $group. Ao contrário de $concatArrays, ele deduplica. Serve para mesclar tags ou listas de permissões.

CategoriaAcumuladores
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

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

Retorno:União de todas as matrizes de entrada (sem duplicatas, sem ordem)

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $setUnion: mescla e deduplica arrays de tags
db.products.aggregate([
  { $project: { allTags: { $setUnion: ['$tags', ['hot']] } } }
])

Saída:

// As tags existentes não são duplicadas

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual é a diferença entre $setUnion e $concatArrays?
A$setUnion deduplica e fica sem ordem; $concatArrays mantém cada elemento em ordem.
QAs entradas precisam ser arrays?
ASim, cada entrada precisa ser um array, senão gera erro.
QEle pode ser um acumulador de $group?
ADesde o MongoDB 8.1, sim — unindo campos de conjunto entre os documentos do grupo.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%