$bitsAllSet (全ビットセット)

最終更新:2026-10-09

$bitsAllSet (全ビットセット)

$bitsAllSet は、指定した位置のビットがすべて 1 にセットされているドキュメントを照合します。`{ flags: { $bitsAllSet: 5 } }`(2 進数で 101)は、ビット 0 とビット 2 がともに 1 のドキュメントに一致します。ビット番号は最下位ビット(0)から数えます。整数(int、long)と BinData で動作し、ビットマスクによる権限管理に最適です。

カテゴリビット演算
MongoDB バージョン3.2+
例の言語mongosh(シェル)

📝 構文

{ <field>: { $bitsAllSet: <bitmask or position array> } }

⚙️ パラメータ

フィールドマッチ対象の整数または BinData フィールド。
ビットマスク整数のビットマスクまたは位置配列(例: 5 または [0, 2])。

戻り値:一致するドキュメントのカーソル

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $bitsAllSet: ビット 0 と 2 がともにセットされている
// 5 は 2 進数で 101
db.users.find({ flags: { $bitsAllSet: 5 } })

// 位置の配列で指定しても同じ
db.users.find({ flags: { $bitsAllSet: [0, 2] } })

出力:

// フラグのビット 0 と 2 が両方セットされているユーザーを返す

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q$bitsAllSet と $bitsAnySet の違いは?
A$bitsAllSet は列挙したビットがすべて 1 である必要があります。$bitsAnySet は 1 つでもセットされていれば一致します。
Qビットマスクの代わりに位置の配列を使えますか?
Aはい。{ $bitsAllSet: [0, 2] } は { $bitsAllSet: 5 } と同じ意味です。
Q$bitsAllSet は浮動小数点数に対応していますか?
Aいいえ。int、long、BinData のみ対応しています。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%