Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

$bitAnd ( operador de expressão )

Novidades na versão 6.3.

$bitAnd

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

The $bitAnd operator has the following syntax:

{ $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

All numbers in mongosh are doubles, not integers. To specify integers in mongosh, use the Int32() or the Long() constructor. To learn more, see Int32 or 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á Int32(-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: Int32(0), b: Int32(127) },
{ _id: 1, a: Int32(2), b: Int32(3) },
{ _id: 2, a: Int32(3), b: Int32(5) }
] )

The following aggregation uses the $bitAnd operator in the $project stage:

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 }
]

The following aggregation uses the $bitAnd operator in the $project stage:

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

A operação retorna os seguintes resultados:

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