AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

$bitXor(式演算子)

バージョン6.3の新機能。

$bitXor

int と long の値の配列に対するビット単位の xor (排他的論理和) 演算の結果を返します。

$bitXor演算子の構文は次のとおりです。

{ $bitXor: [ <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) }] )

次の集計では、 $projectステージで$bitXor演算子が使用されています。

db.switches.aggregate( [ { $project: { result: { $bitXor: ["$a", "$b"] } } }])

この操作は次の結果を返します。

[ { _id: 0, result: 127 }, { _id: 1, result: 1 }, { _id: 2, result: 6 } ]
このページを評価