$bitOr (聚合)
定义
新版本6.3.
语法
$bitOr
操作符具有以下语法
{ $bitOr: [ <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) } ] )
两个整数的位运算 OR
以下聚合操作在 $project
阶段使用了 $bitOr
操作符$project
阶段
db.switches.aggregate( [ { $project: { result: { $bitOr: [ "$a", "$b" ] } } } ])
操作返回以下结果
[ { _id: 0, result: 127 }, { _id: 1, result: 3 }, { _id: 2, result: 7 } ]
长整数和整数的位运算 OR
以下聚合操作在 $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") } ]