$bitsAllClear (全ビットクリア)
最終更新:2026-10-09
$bitsAllClear (全ビットクリア)
$bitsAllClear は、指定した位置のビットがすべて 0 のドキュメントを照合します。`{ flags: { $bitsAllClear: 3 } }`(2 進数で 11)は、ビット 0 とビット 1 がともに 0 のドキュメントに一致します。複数のフラグがすべてオフになっていることを確認するのに便利です。整数と BinData でのみ動作します。
| カテゴリ | ビット演算 |
|---|---|
| MongoDB バージョン | 3.2+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ <field>: { $bitsAllClear: <bitmask or position array> } }
⚙️ パラメータ
| フィールド | マッチ対象の整数または BinData フィールド。 |
|---|---|
| ビットマスク | 整数のビットマスクまたは位置配列(例: 3 または [0, 1])。 |
戻り値:一致するドキュメントのカーソル
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $bitsAllClear: ビット 0 と 1 がともに 0
// 3 は 2 進数で 11
db.users.find({ flags: { $bitsAllClear: 3 } })
// 位置の配列で指定しても同じ
db.users.find({ flags: { $bitsAllClear: [0, 1] } })
出力:
// フラグのビット 0 と 1 が両方クリアされているユーザーを返す
📌 注意事項
- $bitsAllSet の補集合に当たる: すべて 0 かすべて 1 か
- 整数(int、long)と BinData のみ
- 単一ビットの確認も可能: { $bitsAllClear: [n] }
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Qビットが 0 であることを確認するには?
A$bitsAllClear: [位置] を使います。たとえば [2] でビット 2 が 0 であることを確認できます。
Q$bitsAllClear と $bitsAnyClear の違いは?
A$bitsAllClear は列挙したビットがすべて 0 である必要があります。$bitsAnyClear は 1 つでも 0 なら一致します。
Q対応している型は?
Aint、long、BinData のみです。