Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

$bitOr(聚合)

在此页面上

  • 定义
  • 语法
  • 行为
  • 示例
  • 了解详情

6.3 版本中的新功能

$bitOr

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

$bitOr操作符的语法如下:

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

如果操作数同时包含整数和长整型值,MongoDB 将对计算出的整数结果进行符号扩展并返回长整型值。 否则,如果操作数仅包含整数或仅长整型,MongoDB 将返回相应值类型的结果。

注意

mongosh中的所有数字都是双精度浮点数,而不是整数。 要在mongosh中指定整数,请使用NumberInt()NumberLong()构造函数。 要学习;了解更多信息,请参阅Int 32Long。

要了解 MongoDB 驱动程序如何处理数值,请参阅驱动程序文档。

如果数组中的任何参数属于不同的数据类型,例如字符串、双精度浮点数或十进制数,MongoDB 将返回错误。

如果参数为空数组,则该操作返回NumberInt(0)

如果数组中的任何参数等于null ,则该操作返回null

本页上的示例使用switchescollection,其中包含以下文档:

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

  • $bit

后退

$bitNot