文档菜单
文档首页
/
MongoDB 手册
/ / /

$bitOr (聚合)

本页

  • 定义
  • 语法
  • 行为
  • 示例
  • 了解更多

版本6.3.

$bitOr

返回对一组 intlong 值进行按位 or 操作的结果。

$bitOr 操作符具有以下语法

{ $bitOr: [ <expression1>, <expression2>, ... ] }

如果操作数包括整数和长整型值,MongoDB 将计算出的整数结果符号扩展,并返回一个长整型值。否则,如果操作数只包括整数或长整型,MongoDB 返回具有相应值类型的结果。

注意

mongosh 中的所有数字都是双精度浮点数,而不是整数。要在 mongosh 中指定整数,请使用 NumberInt()NumberLong() 构造函数。有关更多信息,请参阅 Int32Long.

要了解您的 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 阶段使用了 $bitOr 操作符$project 阶段

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") }
]
  • 聚合操作符

  • $bit

返回

$bitNot