$cmp (Comparar)

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

$cmp (Comparar)

$cmp compara dois valores e retorna -1, 0 ou 1 para menor que, igual ou maior que. É o operador de comparação em forma de expressão, frequentemente usado para chaves de ordenação personalizadas ou verificações de tamanho dentro de $cond. As comparações seguem a ordem de tipos BSON, então comparar tipos diferentes não gera erro — os valores são ordenados pelo tipo. Diferente de $eq e $gt, que retornam booleanos, $cmp retorna um resultado triplo que se encaixa diretamente em lógica de ordenação ou ramificação.

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

📝 Sintaxe

{ $cmp: [ <expressão1>, <expressão2> ] }

⚙️ Parâmetros

expressão 1A primeira expressão a comparar.
expressão 2A segunda expressão a comparar.

Retorno:-1 quando o primeiro é menor, 0 quando igual, 1 quando maior

▶ Exemplo

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

// $cmp: comparar duas pontuações
db.scores.aggregate([
  { $project: {
      result: { $cmp: ['$scoreA', '$scoreB'] }
  } }
])

Saída:

{ '_id': 1, 'result': 1 }
{ '_id': 2, 'result': -1 }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO que $cmp retorna?
A-1 quando o primeiro é menor, 0 quando igual e 1 quando maior.
QComo $cmp e $eq diferem?
A$eq retorna um booleano, enquanto $cmp retorna um resultado triplo adequado para ordenação e ramificação.
QO $cmp gera erro ao comparar tipos diferentes?
ANão — ele segue a ordem de tipos BSON, então strings são ordenadas depois dos números.
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%