定義
バージョン 6.3 で追加。
構文
$bitOr演算子の構文は次のとおりです。
{ $bitOr: [ <expression1>, <expression2>, ... ] } 
動作
オペランドに整数と long 値の両方が含まれている場合、MongoDB は計算された整数結果を符号拡張し、long 値を返します。 そうではなく、オペランドに整数のみまたは long のみが含まれている場合、MongoDB は対応する値の型を持つ結果を返します。
注意
 mongoshのすべての数値は、整数ではなく double です。 mongoshで整数を指定するには、 Int32()またはLong()コンストラクターを使用します。 詳しくは、「 Int 32またはLong 」を参照してください。
MongoDB ドライバーが数値を処理する方法については、ドライバーのドキュメント を参照してください。
配列内のいずれかの引数がstring、double、decimal など、異なるデータ型である場合、MongoDB はエラーを返します。
引数が空の配列の場合、操作はInt32(0)を返します。
配列内のいずれかの引数がnullと等しい場合、操作はnullを返します。
例
このページの例では、次のドキュメントを含むswitchesコレクションを使用しています。
db.switches.insertMany( [     { _id: 0, a: Int32(0), b: Int32(127) },     { _id: 1, a: Int32(2), b: Int32(3) },     { _id: 2, a: Int32(3), b: Int32(5) } ] ) 
OR2 つの整数を含むビット単位の
次の集計では、  $projectステージで$bitOr演算子を使用します。
db.switches.aggregate( [   {     $project: {       result: {         $bitOr: [ "$a", "$b" ]       }     }   } ]) 
この操作は次の結果を返します。
  [     { _id: 0, result: 127 },     { _id: 1, result: 3 },     { _id: 2, result: 7 }   ] 
ORLong および Integer を使用したビット単位の
次の集計では、 $projectステージで$bitOr演算子が使用されています。
db.switches.aggregate( [   {     $project: {       result: {         $bitOr: [ "$a", Long("63") ]       }     }   } ]) 
この操作は次の結果を返します。
  [     { _id: 0, result: Long("0") },     { _id: 1, result: Long("2") },     { _id: 2, result: Long("3") }   ]