$bitsAllSet - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

$bitsAllSet

Amazon DocumentDB の $bitsAllSet演算子は、フィールドで特定のビットセットがすべて 1 に設定されているドキュメントをクエリするために使用されます。この演算子を使用すると、フィールド値に対してビット単位のオペレーションを実行でき、数値内の個々のビットの状態を確認する必要がある場合に役立ちます。

パラメータ

  • field: ビット単位のオペレーションを実行する数値フィールドの名前。

  • value: チェックするビットを指定する数値ビットマスク、またはチェックするビット位置のリスト。数値ビットマスクは、バイナリ (0b...)、10 進数、16 進数 (0x...)、8 進数 (0o...)、またはバイナリ (BinData) 形式にすることができます。ビット位置のリストでは、最下位ビットの位置は 0 です。

例 (MongoDB シェル)

次の例は、 $bitsAllSet演算子を使用して、 flagsフィールドにビットマスクで指定されたすべてのビットが設定されているドキュメントを検索する方法を示しています。

サンプルドキュメントを作成する

db.collection.insert([ { _id: 1, flags: 0b1010 }, { _id: 2, flags: 0b1100 }, { _id: 3, flags: 0b1110 } ])

クエリの例

db.collection.find({ flags: { $bitsAllSet: 0b1100 } })

出力

{ "_id": 2, "flags": 12 }, { "_id": 3, "flags": 14 }

この例では、クエリは、 flagsフィールドにビットマスク 0b1100 (10 進値 12 を表す) で指定されたすべてのビットが設定されているドキュメントをチェックします。2 と 3 _id のドキュメントは、flagsフィールド値にすべての必須ビット (3 番目と 4 番目の重要度の低いビット) が設定されているため、この基準に一致します。

コードの例

$bitsAllSet コマンドを使用するためのコード例を表示するには、使用する言語のタブを選択します。

Node.js
const { MongoClient } = require('mongodb'); async function findWithBitsAllSet() { 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: { $bitsAllSet: 0b1100 } }).toArray(); console.log(result); await client.close(); } findWithBitsAllSet();
Python
from pymongo import MongoClient def find_with_bits_all_set(): 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': { '$bitsAllSet': 0b1100 } })) print(result) client.close() find_with_bits_all_set()