$bitXor(聚合)
定义
6.3 版本中的新功能。
语法
$bitXor
操作符的语法如下:
{ $bitXor: [ <expression1>, <expression2>, ... ] }
行为
如果操作数同时包含整数和长整型值,MongoDB 将对计算出的整数结果进行符号扩展并返回长整型值。 否则,如果操作数仅包含整数或仅长整型,MongoDB 将返回相应值类型的结果。
注意
如果数组中的任何参数属于不同的数据类型,例如字符串、双精度浮点数或十进制数,MongoDB 将返回错误。
如果参数为空数组,则该操作返回NumberInt(0)
。
如果数组中的任何参数等于null
,则该操作返回null
。
例子
本页上的示例使用switches
集合:
db.switches.insertMany( [ { _id: 0, a: NumberInt(0), b: NumberInt(127) }, { _id: 1, a: NumberInt(2), b: NumberInt(3) }, { _id: 2, a: NumberInt(3), b: NumberInt(5) } ] )
以下聚合在 $project
阶段使用$bitXor
操作符:
db.switches.aggregate( [ { $project: { result: { $bitXor: ["$a", "$b"] } } } ])
操作返回以下结果:
[ { _id: 0, result: 127 }, { _id: 1, result: 1 }, { _id: 2, result: 6 } ]