$ifNull (Substituição para Null)
Última atualização: 2026-10-09
$ifNull (Substituição para Null)
$ifNull retorna um valor de substituição quando uma expressão resulta em null ou um campo está ausente — o operador mais comum para lidar com dados vazios. Usos típicos: fornecer uma bio padrão para perfis ausentes ou substituir preços null por 0 antes da aritmética. Desde o MongoDB 4.4 aceita vários argumentos e retorna o primeiro valor não null. Ele dispara apenas em null e ausência; strings vazias e arrays vazios passam, então combine com $eq ou $size quando eles precisarem ser tratados como vazios.
| Categoria | Conjunto, Condição e Conversão |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $ifNull: [ <expressão>, <substituição> ] }
⚙️ Parâmetros
| expressão | A expressão a inspecionar. |
|---|---|
| valor de substituição | O valor retornado quando a expressão é null ou está ausente. |
Retorno:O valor original quando não é null, caso contrário o substituto
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $ifNull: bio padrão quando ausente
db.users.aggregate([
{ $project: {
bio: { $ifNull: ['$bio', 'This user stays low-key'] }
} }
])
Saída:
{ '_id': 1, 'bio': 'This user stays low-key' }
📌 Notas
- Um campo ausente também dispara a substituição, sem erro
- Strings vazias e arrays não disparam; verifique com $eq/$size antes quando necessário
- 4.4+ aceita vários argumentos: { $ifNull: ['$a', '$b', 'default'] } retorna o primeiro não null
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QUm campo ausente dispara a substituição?
ASim — ausente se comporta como null e retorna a substituição.
QUma string vazia dispara a substituição?
ANão, ele dispara apenas em null e ausência.
QComo usar múltiplas substituições?
APasse vários argumentos na 4.4+; o primeiro não null vence.