文章目录
- 语法
- 用法
- 举例
$bitXor
聚合运算符返回整数或长整数数组元素按位异或的结果。
语法
{ $bitXor: { [ <expression1>, <expression2>, ... ] }
用法
- 如果操作数包括整型和长整型值,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 }]