$bitOr (agregação)
Nesta página
Definição
Novidades na versão 6.3.
Sintaxe
O operador $bitOr
tem a seguinte sintaxe:
{ $bitOr: [ <expression1>, <expression2>, ... ] }
Comportamento
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.
To learn how your MongoDB driver handles numeric values, refer to your driver's documentation.
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(0)
.
Se qualquer um dos argumentos na array for igual a null
, a operação retornará null
.
Exemplos
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) } ] )
Bitwise OR
com dois números inteiros
A seguinte agregação utiliza o operador $bitOr
na etapa $project
:
db.switches.aggregate( [ { $project: { result: { $bitOr: [ "$a", "$b" ] } } } ])
A operação retorna os seguintes resultados:
[ { _id: 0, result: 127 }, { _id: 1, result: 3 }, { _id: 2, result: 7 } ]
Bitwise OR
com um Longo e um Inteiro
A seguinte agregação utiliza o operador $bitOr
na etapa $project
:
db.switches.aggregate( [ { $project: { result: { $bitOr: [ "$a", NumberLong("63") ] } } } ])
A operação retorna os seguintes resultados:
[ { _id: 0, result: Long("0") }, { _id: 1, result: Long("2") }, { _id: 2, result: Long("3") } ]