

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# \$1bitsAnyClear
<a name="bitsAnyClear"></a>

Amazon DocumentDB 中的`$bitsAnyClear`运算符用于匹配清除字段中任何指定位（设置为 0）的文档。这对于对存储在文档中的字段值执行按位运算很有用。

**参数**
+ `field`：要检查的字段。
+ `value`：指定应检查哪些位的数字位掩码，或要检查的位位置列表。数字位掩码可以是二进制 (0b...)、十进制、十六进制 (0x...)、八进制 (0o...) 或二进制 () 形式。BinData在位位置列表中，最低有效位的位置为 0。

## 示例（MongoDB 外壳）
<a name="bitsAnyClear-examples"></a>

以下示例演示如何使用`$bitsAnyClear`运算符来检查`items`集合`status`字段中是否有任何位被清除。

**创建示例文档**

```
db.items.insertMany([
  { "_id": 1, "status": 7 },
  { "_id": 2, "status": 15 },
  { "_id": 3, "status": 31 }
]);
```

**查询示例**

```
db.items.find({ "status": { $bitsAnyClear: 8 } })
```

**输出**

```
{ "_id" : 1, "status" : 7 }
```

在此示例中，该查询会检查该`status`字段在位掩码（二进制）中是否有清除位 `8` (0`1000`) 的文档。`status`值为`7`（二进制`111`）的文档与查询相匹配，因为它在提供的位掩码中至少有一个空位。匹配的清除位是第 4 个最低有效位。

## 代码示例
<a name="bitsAnyClear-code"></a>

要查看使用该`$bitsAnyClear`命令的代码示例，请选择要使用的语言的选项卡：

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function example() {
  const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
  const db = client.db('test');
  const collection = db.collection('items');

  const result = await collection.find({ "status": { $bitsAnyClear: 8 } }).toArray();
  console.log(result);

  await client.close();
}

example();
```

------
#### [ Python ]

```
from pymongo import MongoClient

def example():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client.test
    collection = db.items

    result = list(collection.find({ "status": { "$bitsAnyClear": 8 } }))
    print(result)

    client.close()

example()
```

------