Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$ifNull (agregação)

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Exemplos
$ifNull

Alterado na versão 5.0.

A expressão $ifNull avalia as expressões de entrada quanto a valores nulos e retorna:

  • O primeiro valor deexpressão de entrada não nulo localizado.

  • Um valor de expressão de substituição se todas as expressões de entrada avaliarem para nulo.

$ifNull trata valores indefinidos e campos ausentes como nulos.

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

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

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

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

Esta coleção inventory é usada nos exemplos:

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

O exemplo a seguir usa $ifNull para retornar:

  • description se não for nulo.

  • "Unspecified" string se description for nulo ou ausente.

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

Saída:

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

Novidades na versão 5.0.

O exemplo a seguir usa $ifNull para retornar:

  • description se não for nulo.

  • quantity se description for nulo ou ausente e quantity não for nulo.

  • "Unspecified" string se description e quantity forem nulos ou ausentes.

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

Saída:

{ "_id" : 1, "item" : "buggy", "value" : "toy car" }
{ "_id" : 2, "item" : "bicycle", "value" : 200 }
{ "_id" : 3, "item" : "flag", "value" : "Unspecified" }
← $hour (agregação)