Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

$cond (agregação)

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Exemplo
$cond

Avalia uma expressão booleana para retornar uma das duas expressões de retorno especificadas.

Você pode utilizar o $cond para implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

A expressão $cond tem uma de duas sintaxes:

{ $cond: { if: <boolean-expression>, then: <true-case>, else: <false-case> } }

Ou:

{ $cond: [ <boolean-expression>, <true-case>, <false-case> ] }

$cond requer todos os três argumentos (if-then-else) para qualquer sintaxe.

Se o <boolean-expression> avaliar para true, então $cond avalia e retorna o valor da expressão <true-case> . Caso contrário, $cond avalia e retorna o valor da expressão <false-case> .

Os argumentos podem ser qualquer expressão válida. Para mais informações sobre expressões, consulte Operadores de expressão.

Dica

Veja também:

O exemplo a seguir utiliza uma coleção inventory com os seguintes documentos:

{ "_id" : 1, "item" : "abc1", qty: 300 }
{ "_id" : 2, "item" : "abc2", qty: 200 }
{ "_id" : 3, "item" : "xyz1", qty: 250 }

A seguinte operação de agregação utiliza a expressão $cond para configurar o valor discount para 30 se o valor qty for maior ou igual a 250 e 20 se o valor qty for menor que 250:

db.inventory.aggregate(
[
{
$project:
{
item: 1,
discount:
{
$cond: { if: { $gte: [ "$qty", 250 ] }, then: 30, else: 20 }
}
}
}
]
)

A operação retorna os seguintes resultados:

{ "_id" : 1, "item" : "abc1", "discount" : 30 }
{ "_id" : 2, "item" : "abc2", "discount" : 20 }
{ "_id" : 3, "item" : "xyz1", "discount" : 30 }

A seguinte operação utiliza a sintaxe de array da expressão $cond e retorna os mesmos resultados:

db.inventory.aggregate(
[
{
$project:
{
item: 1,
discount:
{
$cond: [ { $gte: [ "$qty", 250 ] }, 30, 20 ]
}
}
}
]
)
← $concatArrays (agregação)