Docs Menu
Docs Home
/ /

$cond (operador de expresión)

$cond

Evalúa una expresión booleana para devolver una de las dos expresiones de devolución especificadas.

Puedes usar $cond para implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

La expresión $cond tiene una de dos sintaxis posibles:

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

O:

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

$cond requiere los tres argumentos (if-then-else) para ambas sintaxis.

Si el <boolean-expression> se evalúa como true, entonces $cond evalúa y devuelve el valor de la expresión <true-case>. De lo contrario, $cond evalúa y devuelve el valor de la expresión <false-case>.

Los argumentos pueden ser cualquier expresión válida. Para obtener más información sobre las expresiones, consulta Expresiones.

Tip

El siguiente ejemplo usa una colección inventory con los siguientes documentos:

db.inventory.insertMany( [
{ _id: 1, item: "abc1", qty: 300 },
{ _id: 2, item: "abc2", qty: 200 },
{ _id: 3, item: "xyz1", qty: 250 }
] )

La siguiente operación de agregación utiliza la expresión $cond para establecer el valor de discount en 30 si el valor de qty es mayor o igual a 250 y en 20 si el valor de qty es menor que 250:

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

La operación devuelve los siguientes resultados:

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

La siguiente operación utiliza la sintaxis de arreglo de la expresión $cond y devuelve los mismos resultados:

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

Volver

$concatArrays

En esta página