Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$bitAnd (agregação)

Nesta página

  • Definição
  • Sintaxe
  • Comportamento
  • Exemplos
  • Saiba mais

Novidades na versão 6.3.

$bitAnd

Retorna o resultado de uma operação bitwise and em uma array de int ou long valores.

O operador $bitAnd tem a seguinte sintaxe:

{ $bitAnd: [ <expression1>, <expression2>, ... ] }

Se os operandos incluírem inteiros e valores longos, o sinal-estágios MongoDB o resultado inteiro calculado e retornará um valor longo. Caso contrário, se os operandos incluírem apenas inteiros ou apenas longos, o MongoDB retornará os resultados com o tipo de valor correspondente.

Observação

Todos os números em mongosh são duplos, não inteiros. Para especificar inteiros no mongosh, use o NumberInt() ou o construtor NumberLong() . Para saber mais, consulte Int32 ou Long.

Para saber como seu driver MongoDB lida com valores numéricos, consulte a documentação do driver.

Se algum argumento na array for de um tipo de dados diferente, como uma string, duplo ou decimal, o MongoDB retornará um erro.

Se o argumento for um array vazio, a operação retornará NumberInt(-1).

Se algum dos operandos for igual a null , a operação retornará null .

Os exemplos nesta página utilizam a collection switches , que contém os seguintes documentos:

db.switches.insertMany( [
{ _id: 0, a: NumberInt(0), b: NumberInt(127) },
{ _id: 1, a: NumberInt(2), b: NumberInt(3) },
{ _id: 2, a: NumberInt(3), b: NumberInt(5) }
] )

A seguinte agregação utiliza o operador $bitAnd no estágio $project :

db.switches.aggregate( [
{
$project: {
result: {
$bitAnd: [ "$a", "$b" ]
}
}
}
])

A operação retorna os seguintes resultados:

[
{ _id: 0, result: 0 }
{ _id: 1, result: 2 }
{ _id: 2, result: 1 }
]

A seguinte agregação utiliza o operador $bitAnd no estágio $project :

db.switches.aggregate( [
{
$project: {
result: {
$bitAnd: [ "$a", NumberLong("63") ]
}
}
}
])

A operação retorna os seguintes resultados:

[
{ _id: 0, result: NumberLong("0") }
{ _id: 1, result: NumberLong("2") }
{ _id: 2, result: NumberLong("3") }
]

Voltar

$binarySize