$bit (ビット演算更新)

最終更新:2026-10-09

$bit (ビット演算更新)

$bit は、整数フィールドに対してビット演算(AND、OR、XOR)を行います。`{ $bit: { flags: { and: 254 } } }` で最下位ビットをクリアできます。アトミックで、多くの更新演算子と違い、存在しないフィールドを作成せずにエラーを投げます。ビットマスクによる権限やフラグの管理に最適で、$bits* 系クエリ演算子と組み合わせて使えます。

カテゴリ配列更新
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $bit: { <field>: { and: <value> | or: <value> | xor: <value> } } }

⚙️ パラメータ

フィールドビット演算を適用する整数フィールド。
ビット演算and、or、xor のいずれかとビットマスク値。

戻り値:更新結果

▶ 例

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

// $bit: AND で最下位ビットをクリア
// 254 は 2 進数で 11111110
db.users.updateOne(
  { _id: 1 },
  { $bit: { flags: { and: 254 } } }
)

// OR でビット 0 をセット
db.users.updateOne(
  { _id: 1 },
  { $bit: { flags: { or: 1 } } }
)

出力:

// 最下位ビットがクリアされる。2 つ目の例はビット 0 をセットする

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$bit はどの演算に対応していますか?
AAND、OR、XOR です。
Q$bit の対象フィールドが存在しない場合は?
A作成せずにエラーになります。先に $set で初期化してください。
Q単一ビットをセット・クリアするには?
Aセットは or: 1 を n 桁左シフトした値、クリアはそのビット単位 NOT を and に指定します。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%