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