$bitOr
聚合运算符返回整数或长整数数组元素按位或的结果。
语法
{ $bitOr: { [ <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
阶段中使用$bitOr
对两个整数进行按位与:
db.switches.aggregate( [
{
$project: {
result: {
$bitOr: [ "$a", "$b" ]
}
}
}
])
操作返回下面的结果:
[
{ _id: 0, result: 127 },
{ _id: 1, result: 3 },
{ _id: 2, result: 7 }
]
整型与长整型按位与
下面的聚合操作在$project
阶段中使用$bitOr
对一个整数和长整数进行按位与:
db.switches.aggregate( [
{
$project: {
result: {
$bitOr: [ "$a", NumberLong("63") ]
}
}
}
])
操作返回的结果如下:
[
{ _id: 0, result: Long("0") },
{ _id: 1, result: Long("2") },
{ _id: 2, result: Long("3") }
]