Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
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

Los ejemplos de esta página utilizan datos del conjunto de datos de muestra sample_mflix. Para obtener más información sobre cómo cargar este conjunto de datos en la implementación autogestionada de MongoDB, consultar Cargar el conjunto de datos de muestra. Si se realizó alguna modificación en las bases de datos de muestra, es posible que se deban descartar y volver a crear las bases de datos para ejecutar los ejemplos de esta página.

La siguiente operación de agregación utiliza la expresión $cond para asignar un precio de alquiler a cada película. La operación valora las películas con un imdb.rating mayor o igual a 9 en 5.99. La operación fija el precio de todas las demás películas en 3.99:

db.movies.aggregate( [
{ $match: { runtime: { $gt: 1000 } } },
{
$project:
{
title: 1,
rentalPrice:
{
$cond: {
if: { $gte: [ "$imdb.rating", 9 ] },
then: 5.99,
else: 3.99
}
}
}
}
] )
[
{ _id: ..., title: 'Baseball', rentalPrice: 5.99 },
{ _id: ..., title: 'Centennial', rentalPrice: 3.99 }
]

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

db.movies.aggregate( [
{ $match: { runtime: { $gt: 1000 } } },
{
$project:
{
title: 1,
rentalPrice:
{
$cond: [
{ $gte: [ "$imdb.rating", 9 ] },
5.99,
3.99
]
}
}
}
] )

Volver

$concatArrays

En esta página