$ifNull (null のフォールバック)
最終更新:2026-10-09
$ifNull (null のフォールバック)
$ifNull は、式が null に解決されるかフィールドが欠落している場合に代替値を返します。空データの処理で最もよく使われる演算子です。代表的な用途は、プロフィールが欠落している場合のデフォルト自己紹介や、算術の前に null の価格を 0 に置き換えることです。MongoDB 4.4 以降は複数の引数を受け付け、最初の null でない値を返します。null と欠落でのみ発動し、空文字列や空配列はそのまま通します。それらも空として扱いたい場合は $eq や $size と組み合わせてください。
| カテゴリ | 集合・条件・変換 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $ifNull: [ <expression>, <replacement> ] }
⚙️ パラメータ
| 式 | 検査する式。 |
|---|---|
| 置換値 | 式が null または欠落している場合に返される値。 |
戻り値:null でない場合は元の値、それ以外は置換値
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $ifNull: 欠落時のデフォルト自己紹介
db.users.aggregate([
{ $project: {
bio: { $ifNull: ['$bio', 'This user stays low-key'] }
} }
])
出力:
{ '_id': 1, 'bio': 'This user stays low-key' }
📌 注意事項
- フィールドの欠落もエラーなくフォールバックを発動させる
- 空文字列や空配列では発動しない。必要なら $eq/$size で先にチェックする
- 4.4+ は複数引数対応: { $ifNull: ['$a', '$b', 'default'] } は最初の非 null を返す
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Qフィールドの欠落でもフォールバックしますか?
Aはい — 欠落は null と同じ扱いで、代替値を返します。
Q空文字列でもフォールバックしますか?
Aいいえ — 発動するのは null と欠落だけです。
Q複数のフォールバックを使うには?
A4.4+ で複数の引数を渡します。最初の非 null が採用されます。