$setEquals (Verificar Igualdade de Conjuntos)
Última atualização: 2026-10-09
$setEquals (Verificar Igualdade de Conjuntos)
$setEquals verifica se dois ou mais arrays são iguais como conjuntos, ignorando ordem e duplicatas. Usos típicos: verificar se duas listas de permissões coincidem ou comparar uma configuração com padrões. Aceita vários argumentos e retorna true apenas quando todos os arrays são iguais como conjuntos. Elementos null são ignorados, então arrays contendo null são comparados como se o null estivesse ausente. A ordem não importa: [1, 2] e [2, 1] são iguais.
| Categoria | Conjunto, Condição e Conversão |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $setEquals: [ <array1>, <array2>, ... ] }
⚙️ Parâmetros
| array | Pelo menos duas matrizes a comparar. |
|---|
Retorno:true quando todas as matrizes são iguais como conjunto, caso contrário false
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $setEquals: duas listas de permissões coincidem
db.roles.aggregate([
{ $project: {
samePerms: { $setEquals: ['$userPerms', '$defaultPerms'] }
} }
])
Saída:
{ '_id': 1, 'samePerms': true }
📌 Notas
- Ordem e duplicatas são ignoradas: [1, 2] é igual a [2, 1, 1]
- Vários argumentos são suportados; todos devem ser iguais para true
- Elementos null são ignorados, como se ausentes
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QA ordem afeta o resultado?
ANão — a comparação de conjuntos ignora ordem.
QQuantos argumentos são suportados?
APelo menos dois; true apenas quando todos são iguais como conjuntos.
QE arrays contendo null?
AElementos null são ignorados, então o resultado coincide com uma versão sem eles.