$setUnion (União de Conjuntos)
Última atualização: 2026-10-09
$setUnion (União de Conjuntos)
$setUnion mescla todos os arrays de entrada e deduplica os elementos, retornando a união. Usos típicos: combinar tags de várias fontes ou agregar IDs de leads coletados por canais diferentes. Aceita dois ou mais arrays, e elementos null são ignorados. O resultado não tem ordem garantida, e duplicatas colapsam em uma. Diferente de $concatArrays, que mantém duplicatas e preserva a ordem de concatenação, $setUnion segue a semântica de conjunto e deduplica.
| Categoria | Conjunto, Condição e Conversão |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $setUnion: [ <array1>, <array2>, ... ] }
⚙️ Parâmetros
| array | Pelo menos duas matrizes cuja união é retornada. |
|---|
Retorno:Uma mesclagem sem duplicatas de todos os elementos de entrada
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $setUnion: mesclar dois conjuntos de tags
db.products.aggregate([
{ $project: {
allTags: { $setUnion: ['$tags', '$extraTags'] }
} }
])
Saída:
{ '_id': 1, 'allTags': [ 'a', 'b', 'c', 'd' ] }
📌 Notas
- O resultado é deduplicado sem ordem garantida
- Elementos null são ignorados
- Use $concatArrays quando duplicatas e ordem precisarem ser mantidas
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo difere de $concatArrays?
A$setUnion deduplica sem ordenar; $concatArrays mantém duplicatas em ordem.
QQuantos arrays são suportados?
ADois ou mais.
QO resultado é deduplicado?
ASim — sob semântica de conjunto, cada elemento aparece uma vez.