$bitOr (ビット論理和)

最終更新:2026-10-09

$bitOr (ビット論理和)

$bitOr は整数に対してビット単位の OR 演算を行います。MongoDB 6.3 以降で利用でき、整数の配列(または単一の数値)を受け付けます。フラグビットの組み合わせや権限のマージに使われ、例えば複数の権限ビットを 1 つの整数にまとめられます。引数のいずれかが null または欠落している場合は null を返します。オペランドは int32 または int64 である必要があり、他の型はエラーになります。$bitAnd がビットを読み取るのに対し、$bitOr はビットを設定するため、組み合わせることでビットマスクの読み書きを両方まかなえます。

カテゴリ数学
MongoDB バージョン6.3+
例の言語mongosh(シェル)

📝 構文

{ $bitOr: [ <integer1>, <integer2>, ... ] }

⚙️ パラメータ

整数int32 または int64 の整数、あるいはそれらに解決される式。少なくとも2つ。

戻り値:すべてのオペランドのビット単位 OR。null または欠落している場合は null

▶ 例

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

// $bitOr: 読み取り権限と書き込み権限のビットを結合
db.users.aggregate([
  { $project: {
      combined: { $bitOr: ['$permRead', '$permWrite'] }
  } }
])

出力:

{ '_id': 1, 'combined': 6 }
{ '_id': 2, 'combined': 3 }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$bitOr と $bitAnd の違いは?
A$bitOr はどちらかのオペランドにビットがあれば 1 にします。$bitAnd は両方にある場合だけ残します。
Q$bitOr で権限をマージできますか?
Aはい。権限ビットを OR で結合すると 1 つの整数にまとめられます。
Q$bitOr は null に対して何を返しますか?
Aいずれかの引数が null または欠落だと、結果は null になります。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%