$cond (Expressão Condicional)

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

$cond (Expressão Condicional)

$cond implementa a lógica ternária se-então-senão, o operador de ramificação mais básico em expressões de agregação. Suporta uma forma de objeto { if, then, else } e uma forma de array [ condição, resultadoTrue, resultadoFalse ], que são equivalentes. Usos típicos: calcular faixas de frete a partir de valores de pedido ou mapear códigos de status para rótulos. A condição segue as regras de veracidade, então valores não booleanos também funcionam. Para muitas ramificações, $switch é mais claro.

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

📝 Sintaxe

{ $cond: { if: <condição>, then: <resultado1>, else: <resultado2> } } ou { $cond: [ <condição>, <resultado1>, <resultado2> ] }

⚙️ Parâmetros

if/condiçãoA expressão que escolhe um ramo, julgada por veracidade.
then/resultado 1O resultado quando a condição é verdadeira.
else/resultado 2O resultado quando a condição é falsa.

Retorno:result1 quando a condição é verdadeira, caso contrário result2

▶ Exemplo

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

// $cond: valores acima de 100 são pedidos grandes
db.orders.aggregate([
  { $project: {
      level: { $cond: { if: { $gt: ['$amount', 100] }, then: 'big', else: 'small' } }
  } }
])

Saída:

{ '_id': 1, 'level': 'big' }
{ '_id': 2, 'level': 'small' }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QA condição pode ser não booleana?
ASim — a veracidade se aplica; 0, null e '' são falsos.
QQual é a diferença entre as duas formas?
ANenhuma — a semântica é idêntica, apenas a sintaxe difere.
QComo lidar com muitas ramificações?
AUse $switch, que corresponde à primeira ramificação verdadeira em 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%