$bitsAllSet - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$bitsAllSet

Der $bitsAllSet Operator in Amazon DocumentDB wird verwendet, um Dokumente abzufragen, bei denen ein bestimmter Satz von Bits in einem Feld alle auf 1 gesetzt ist. Dieser Operator ermöglicht es Ihnen, bitweise Operationen an Feldwerten durchzuführen. Er kann nützlich sein, wenn Sie den Status einzelner Bits innerhalb eines numerischen Werts überprüfen müssen.

Parameter

  • field: Der Name des numerischen Felds, für das die bitweise Operation ausgeführt werden soll.

  • value: Die numerische Bitmaske, die angibt, welche Bits geprüft werden sollen, oder eine Liste von Bitpositionen, die überprüft werden sollen. Eine numerische Bitmaske kann binär (0b...), dezimal, hexadezimal (0x...), oktal (0o...) oder binär () sein. BinData In einer Liste von Bitpositionen ist die Position des niedrigstwertigen Bits 0.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $bitsAllSet Operator verwendet wird, um Dokumente zu finden, in denen in dem flags Feld alle Bits gesetzt sind, die durch die Bitmaske angegeben sind.

Erstellen Sie Beispieldokumente

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

Beispiel für eine Abfrage

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

Ausgabe

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

In diesem Beispiel sucht die Abfrage nach Dokumenten, in denen für das flags Feld alle Bits gesetzt sind, die durch die Bitmaske 0b1100 (die den Dezimalwert 12 darstellt) angegeben sind. Die Dokumente mit _id 2 und 3 entsprechen diesen Kriterien, da für ihre flags Feldwerte alle erforderlichen Bits gesetzt sind (das dritte und das viertniedrigste Bit).

Codebeispiele

Um ein Codebeispiel für die Verwendung des $bitsAllSet Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

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()