$toBool (ブール値への変換)
最終更新:2026-10-09
$toBool (ブール値への変換)
$toBool は値をブール値に変換します。数値 0 は false に、0 以外の数値は true になります。文字列 'true' と 'false' は直接変換され、日付は true になり、null は null のままです。代表的な用途は、API から受け取った 0/1 フラグをブールフィールドに正規化したり、真の表現を統一したりすることです。to: bool の $convert 短縮形で、onError がありません。無効な値の変換はエラーになります。
| カテゴリ | 集合・条件・変換 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $toBool: <expression> }
⚙️ パラメータ
| 式 | 変換する値。 |
|---|
戻り値:ブール値。入力が null の場合は null
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $toBool: 0/1 フラグをブール値に変換
db.devices.aggregate([
{ $project: {
active: { $toBool: '$enabled' }
} }
])
出力:
{ '_id': 1, 'active': true }
{ '_id': 2, 'active': false }
📌 注意事項
- 0 は false、0 以外は true。文字列 '0' は true になる
- null の入力は false ではなく null を返す
- 対応していない型はエラー。$convert の onError でガードする
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q数値 0 はどうなりますか?
Afalse になります。0 以外の数値は true になります。
Q文字列は変換できますか?
A'true' と 'false' は変換できます。他の文字列はエラーになります。
Qnull は何を返しますか?
Afalse ではなく null を返します。