$bitsAllClear
¶3.2版中的新功能。
$bitsAllClear
匹配文档,其中查询给出的所有位位置都在中清晰(即0
)field
。
{ <field>: { $bitsAllClear: <numeric bitmask> } } |
{ <field>: { $bitsAllClear: < BinData bitmask> } } |
{ <field>: { $bitsAllClear: [ <position1>, <position2>, ... ] } } |
该field
值必须是数字或
BinData实例。否则,$bitsAllClear
将与当前文档不匹配。
$bitsAllClear
将返回错误。<position>
必须为非负整数。位位置0
从最低有效位开始。例如,十进制数254
将具有以下位位置:位值 | 1个 | 1个 | 1个 | 1个 | 1个 | 1个 | 1个 | 0 |
位置 | 7 | 6 | 5 | 4 | 3 | 2 | 1个 | 0 |
查询不能将索引用于$bitsAllClear
查询的一部分,尽管查询的其他部分可以使用索引(如果适用)。
$bitsAllClear
将与无法表示为带符号的64位整数的数值不匹配。如果值太大或太小而无法容纳带符号的64位整数,或者具有小数部分,则可能是这种情况。
数字以符号扩展。例如,$bitsAllClear
考虑将位位置200
设置为负数-5
,但将位位置200
清除为正数+5
。
相反,BinData实例是零扩展的。例如,给定以下文档:
$bitsAllClear
会认为外面的所有位x
都是清楚的。
以下示例将使用具有以下文档的集合:
以下查询使用$bitsAllClear
运算符测试字段是否a
在位置2和4处清除位
(is 的二进制表示。BinData(0, "ID==")
00010100
该查询与以下文档匹配: