Menu Docs
Página inicial do Docs
/
Manual do banco de dados
/ / /

$ifNull (agregação)

$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 valorde expressão de entrada não nula encontrado.

  • 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 do 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" }

Voltar

$ hora

Nesta página