$setIntersection (Interseção de Conjuntos)
Última atualização: 2026-10-09
$setIntersection (Interseção de Conjuntos)
$setIntersection retorna os elementos presentes em cada array de entrada, com duplicatas removidas. Usos típicos: encontrar interesses compartilhados entre um usuário e amigos, ou os produtos comuns sob várias condições de filtro. Aceita dois ou mais arrays, e elementos null são ignorados. O resultado segue a semântica de conjunto sem ordem garantida, completando a família de operadores de conjunto com $setUnion (união) e $setDifference (diferença).
| Categoria | Conjunto, Condição e Conversão |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $setIntersection: [ <array1>, <array2>, ... ] }
⚙️ Parâmetros
| array | Pelo menos duas matrizes cujos elementos comuns são retornados. |
|---|
Retorno:Uma matriz sem duplicatas de elementos presentes em todas as matrizes de entrada
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $setIntersection: tags de interesse compartilhadas
db.users.aggregate([
{ $project: {
common: { $setIntersection: ['$myTags', '$friendTags'] }
} }
])
Saída:
{ '_id': 1, 'common': [ 'mongo', 'db' ] }
📌 Notas
- O resultado é deduplicado sem ordem garantida
- Dois ou mais arrays são suportados
- Elementos null são ignorados
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO resultado é deduplicado?
ASim, a interseção deduplica por semântica de conjunto.
QVários arrays são suportados?
ASim — apenas elementos presentes em todos os arrays aparecem no resultado.
QA ordem do resultado é garantida?
ANão, nunca dependa da ordem.