Docs Menu
Docs Home
/ /

$ifNull (operador de expresión)

$ifNull

Modificado en la versión 5.0.

El $ifNull expresión evalúa expresiones de entrada en busca de valores nulos y devuelve:

  • La primera entrada no nula Valor deexpresión encontrado.

  • Un valor de expresión de reemplazo si todas las expresiones de entrada se evalúan como nulas.

$ifNull trata los valores indefinidos y los campos faltantes como nulos.

Puedes usar $ifNull 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.

{
$ifNull: [
<input-expression-1>,
...
<input-expression-n>,
<replacement-expression-if-null>
]
}

Esta colección inventory se utiliza en los ejemplos:

db.inventory.insertMany( [
{ _id: 1, item: "buggy", description: "toy car", quantity: 300 },
{ _id: 2, item: "bicycle", description: null, quantity: 200 },
{ _id: 3, item: "flag" }
] )

El siguiente ejemplo utiliza $ifNull para devolver:

  • description si no es nulo.

  • "Unspecified" string si description es nulo o está ausente.

db.inventory.aggregate(
[
{
$project: {
item: 1,
description: { $ifNull: [ "$description", "Unspecified" ] }
}
}
]
)

Salida:

{ _id: 1, item: "buggy", description: "toy car" }
{ _id: 2, item: "bicycle", description: "Unspecified" }
{ _id: 3, item: "flag", description: "Unspecified" }

Nuevo en la versión 5.0.

El siguiente ejemplo utiliza $ifNull para devolver:

  • description si no es nulo.

  • quantity si description es nulo o falta y quantity no es nulo.

  • "Unspecified" string si description y quantity son ambos nulos o faltan.

db.inventory.aggregate(
[
{
$project: {
item: 1,
value: { $ifNull: [ "$description", "$quantity", "Unspecified" ] }
}
}
]
)

Salida:

{ _id: 1, item: "buggy", value: "toy car" }
{ _id: 2, item: "bicycle", value: 200 }
{ _id: 3, item: "flag", value: "Unspecified" }

Volver

$hour

En esta página