Boolean (真/偽)
最終更新:2026-10-09
Boolean (真/偽)
Boolean は true または false を保持します。フラグやトグル(isActive、isDeleted)に最適です。フィールド値を直接一致させてクエリします。フィールドが無いことと false は異なるため、区別には `$exists` を使います。0/1 や 'yes'/'no' の文字列は型の混乱を生むため避けてください。
| カテゴリ | BSON 型 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ isActive: true }
db.users.find({ isActive: false })
db.users.find({ isActive: { $exists: false } })
戻り値:ブール値 true/false。クエリでは一致するドキュメントを返します
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// Boolean: フラグのフィルタリング
use shop
db.users.insertOne({ name: 'alice', isActive: true })
db.users.find({ isActive: true })
出力:
{ _id: ObjectId('...'), name: 'alice', isActive: true }
📌 注意事項
- true/false のみ。0/1 の文字列で代用しない
- フィールド無し != false。$exists で区別する
- 条件付きアグリゲーションではブール値を $cond と組み合わせる
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Qブールフィールドにインデックスを張れますか?
A張れますが、値が2つしかないためカーディナリティが低く、他のフィールドとの複合インデックスを推奨します。
QisActive:false はフィールドが無いことと同じですか?
A違います。false の一致は値が false のドキュメントを返します。フィールドが無いものは $exists:false でのみ一致します。
Qブールの代わりに 0/1 を使えますか?
A推奨しません。数値とブールを混ぜると、クエリやアグリゲーションの型チェックが壊れます。