$setIsSubset (Verificar Relação de Subconjunto)

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

$setIsSubset (Verificar Relação de Subconjunto)

$setIsSubset verifica se todo elemento do primeiro array também aparece no segundo — ou seja, se o primeiro conjunto é um subconjunto do segundo. Usos típicos: verificar se as permissões de um usuário cobrem todas as permissões que uma operação exige, ou se todas as tags escolhidas pertencem a uma lista permitida. Um primeiro array vazio retorna true; um segundo array vazio com um primeiro não vazio retorna false. Elementos null são ignorados.

CategoriaConjunto, Condição e Conversão
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $setIsSubset: [ <arrayA>, <arrayB> ] }

⚙️ Parâmetros

array AO subconjunto candidato.
array BO superconjunto.

Retorno:true quando todo elemento de A está em B, caso contrário false

▶ Exemplo

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

// $setIsSubset: todas as permissões selecionadas são permitidas
db.roles.aggregate([
  { $project: {
      ok: { $setIsSubset: ['$selected', '$allowed'] }
  } }
])

Saída:

{ '_id': 1, 'ok': true }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO que um primeiro array vazio retorna?
Atrue — o conjunto vazio é subconjunto de todo conjunto.
QComo difere de $setEquals?
A$setIsSubset verifica contenção em um sentido; $setEquals verifica igualdade nos dois sentidos.
QA ordem afeta o resultado?
ANão — a semântica de conjunto ignora ordem.
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%