$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
该查询与以下文档匹配: