$bitsAllSet - Amazon DocumentDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

$bitsAllSet

O $bitsAllSet operador no Amazon DocumentDB é usado para consultar documentos em que um conjunto específico de bits está todo definido como 1 em um campo. Esse operador permite que você execute operações bit a bit em valores de campo e pode ser útil quando você precisa verificar o estado de bits individuais em um valor numérico.

Parâmetros

  • field: o nome do campo numérico no qual realizar a operação bit a bit.

  • value: a máscara de bits numérica que especifica quais bits devem ser verificados ou uma lista de posições de bits a serem verificadas. Uma máscara de bits numérica pode ser binária (0b...), decimal, hexadecimal (0x...), octal (0o...) ou binária (). BinData Em uma lista de posições de bits, a posição do bit menos significativo é 0.

Exemplo (MongoDB Shell)

O exemplo a seguir demonstra como usar o $bitsAllSet operador para encontrar documentos em que o flags campo tenha todos os bits definidos que são especificados pela máscara de bits.

Crie documentos de amostra

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

Exemplo de consulta

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

Saída

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

Neste exemplo, a consulta verifica documentos em que o flags campo tem todos os bits definidos pela máscara de bits 0b1100 (que representa o valor decimal 12). Os documentos com _id 2 e 3 correspondem a esse critério, pois seus valores de flags campo têm todos os bits necessários definidos (o 3º e o 4º bits menos significativos).

Exemplos de código

Para ver um exemplo de código para usar o $bitsAllSet comando, escolha a guia do idioma que você deseja usar:

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