

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

Amazon DocumentDB 中的`$bitsAnySet`運算子用於查詢至少有一個位元在欄位中指定位元中設定為 1 的文件。此運算子可讓您對存放在 欄位中的值執行位元操作，以位元特性有效率地查詢和分析資料。

**參數**
+ `field`：要套用位元操作的欄位名稱。
+ `value`：指定應檢查哪些位元的數值位元遮罩，或要檢查的位元位置清單。數字位元遮罩可以是二進位 (0b...)、十進位、十六進位 (0x...)、八進位 (0o...) 或二進位 (BinData) 格式。在位元位置清單中，最低有效位元的位置為 0。

## 範例 (MongoDB Shell)
<a name="bitsAnySet-examples"></a>

下列範例示範如何使用 `$bitsAnySet`運算子來尋找在 `flags` 欄位中至少設定一個位元的文件。

**建立範例文件**

```
db.collection.insertMany([
  { _id: 1, flags: 0b1010 },
  { _id: 2, flags: 0b1100 },
  { _id: 3, flags: 0b0011 },
  { _id: 4, flags: 0b0100 }
]);
```

**查詢範例**

```
db.collection.find({
  flags: { $bitsAnySet: 0b1010 }
})
```

**輸出**

```
{ "_id" : 1, "flags" : 10 }
{ "_id" : 2, "flags" : 12 }
{ "_id" : 3, "flags" : 3 }
```

查詢會傳回至少`0b1010`在 `flags` 欄位中設定一個位元遮罩中指定的位元的文件。

## 程式碼範例
<a name="bitsAnySet-code"></a>

若要檢視使用 `$bitsAnySet`命令的程式碼範例，請選擇您要使用的語言標籤：

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

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

async function main() {
  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('collection');

  const result = await collection.find({
    flags: { $bitsAnySet: 0b1010 }
  }).toArray();

  console.log(result);

  await client.close();
}

main();
```

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

```
from pymongo import MongoClient

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['collection']

result = list(collection.find({
    'flags': { '$bitsAnySet': 0b1010 }
}))

print(result)

client.close()
```

------