适用范围: NoSQL
本文详细介绍了 Azure Cosmos DB 支持的位运算符。 位运算符对于动态构建 JSON 结果集非常有用。 位运算符的工作方式类似于 C# 和 JavaScript 等高级编程语言。 有关 C# 位运算符的示例,请参阅位和移位运算符。
下表显示了 API for NoSQL 中两个值之间位运算的说明和示例。
操作 | 运算符 | 说明 |
---|---|---|
左移 | << |
将左侧值向左移动指定的位数。 |
右移 | >> |
将左侧值向右移动指定的位数。 |
零填充(无符号)右移 | >>> |
将左侧值向右移动指定的位数,而不填充最左侧的位。 |
AND | & |
计算按位逻辑与。 |
或者 | | |
计算按位逻辑或。 |
XOR | ^ |
计算按位逻辑异或。 |
例如,以下查询使用每个位运算符并呈现结果。
SELECT
(100 >> 2) AS rightShift,
(100 << 2) AS leftShift,
(100 >>> 0) AS zeroFillRightShift,
(100 & 1000) AS logicalAnd,
(100 | 1000) AS logicalOr,
(100 ^ 1000) AS logicalExclusiveOr
示例查询的结果为 JSON 对象。
[
{
"rightShift": 25,
"leftShift": 400,
"zeroFillRightShift": 100,
"logicalAnd": 96,
"logicalOr": 1004,
"logicalExclusiveOr": 908
}
]
重要
Azure Cosmos DB for NoSQL 中的位运算符与 JavaScript 中的位运算符保持相同的行为。 JavaScript 将数字存储为 64 位浮点数,但所有位运算都对 32 位二进制数执行。 在执行位运算之前,JavaScript 会将数字转换为 32 位带符号整数。 执行位运算后,结果将转换为 64 位 JavaScript 数字。 有关 JavaScript 中的位运算符的详细信息,请参阅 MDN Web Docs 上的 JavaScript 二进制位运算符。