Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Menu Docs
Página inicial do Docs
/ /

$ifNull (operador de expressão )

$ifNull

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>
]
}

Os exemplos nesta página utilizam dados do conjunto de dados de amostra sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação autogerenciada do MongoDB , consulte Carregar o conjunto de dados de amostra. Se você fez modificações nos bancos de dados de amostra, talvez seja necessário descartar e recriar os bancos de dados para executar os exemplos nesta página.

O exemplo a seguir usa $ifNull para retornar:

  • rated se o campo rated não for nulo.

  • "Not Rated" string se rated for nulo ou ausente.

db.movies.aggregate(
[
{ $match: { year: { $lt: 1910 } } },
{
$project: {
_id: 0,
title: 1,
rated: { $ifNull: [ "$rated", "Not Rated" ] }
}
},
{ $sort: { title: 1 } }
]
)
[
{ title: 'A Corner in Wheat', rated: 'G' },
{ title: 'The Great Train Robbery', rated: 'TV-G' },
{ title: 'The Kiss', rated: 'Not Rated' },
{ title: 'The Kiss', rated: 'Not Rated' }
]

Novidades na versão 5.0.

O exemplo a seguir usa $ifNull para retornar:

  • tomatoes.critic.rating se não for nulo.

  • tomatoes.viewer.rating se tomatoes.critic.rating for nulo ou ausente e tomatoes.viewer.rating não for nulo.

  • 0 se tomatoes.critic.rating e tomatoes.viewer.rating forem nulos ou ausentes.

db.movies.aggregate(
[
{ $match: { year: { $lt: 1910 } } },
{
$project: {
_id: 0,
title: 1,
rating: { $ifNull: [ "$tomatoes.critic.rating", "$tomatoes.viewer.rating", 0 ] }
}
},
{ $sort: { title: 1 } }
]
)
[
{ title: 'A Corner in Wheat', rating: 3.6 },
{ title: 'The Great Train Robbery', rating: 7.6 },
{ title: 'The Kiss', rating: 4 },
{ title: 'The Kiss', rating: 0 }
]

Voltar

$ hora

Nesta página