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

$位与(聚合)

本页

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

在版本6.3.

$bitAnd

返回一个整型或长整型值数组的位与操作的结果。

以下$bitAnd运算符的语法如下

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

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

注意

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

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

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

如果参数是空数组,则操作返回NumberInt(-1)

如果任何操作数等于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) }
] )

以下聚合操作在$bitAnd操作符中使用了$project阶段

db.switches.aggregate( [
{
$project: {
result: {
$bitAnd: [ "$a", "$b" ]
}
}
}
])

该操作返回以下结果

[
{ _id: 0, result: 0 }
{ _id: 1, result: 2 }
{ _id: 2, result: 1 }
]

以下聚合操作在$bitAnd操作符中使用了$project阶段

db.switches.aggregate( [
{
$project: {
result: {
$bitAnd: [ "$a", NumberLong("63") ]
}
}
}
])

该操作返回以下结果

[
{ _id: 0, result: NumberLong("0") }
{ _id: 1, result: NumberLong("2") }
{ _id: 2, result: NumberLong("3") }
]
  • 聚合运算符

  • $bit

返回

$binarySize