$bitAnd (E Bit a Bit)
Última atualização: 2026-10-09
$bitAnd (E Bit a Bit)
$bitAnd executa um E bit a bit (AND) sobre inteiros. Disponível desde o MongoDB 6.3, aceita um array de inteiros (ou um único número). É usado para verificações de bits de permissão, filtragem de flags e matemática de máscaras de sub-rede, como testar se um inteiro de permissão contém um determinado bit. Um argumento nulo ou ausente resulta em null; os operandos devem ser int32 ou int64, e doubles, Decimals ou outros tipos geram erro. Pertence à família bit a bit com $bitOr, $bitXor e $bitNot.
| Categoria | Matemática |
|---|---|
| Versão do MongoDB | 6.3+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $bitAnd: [ <inteiro1>, <inteiro2>, ... ] }
⚙️ Parâmetros
| inteiro | Inteiros int32 ou int64, ou expressões que resolvam para eles; pelo menos dois. |
|---|
Retorno:O AND bit a bit de todos os operandos; null quando null ou ausente
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $bitAnd: verificar se o bit de permissão 4 está ativo
db.users.aggregate([
{ $project: {
hasWrite: { $ne: [{ $bitAnd: ['$permissions', 4] }, 0] }
} }
])
Saída:
{ '_id': 1, 'hasWrite': true }
{ '_id': 2, 'hasWrite': false }
📌 Notas
- Apenas int32 e int64 são suportados; valores de ponto flutuante geram erro
- O tipo do resultado corresponde aos operandos
- Compare o resultado com 0 para testar se um bit está ativo
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO $bitAnd suporta números de ponto flutuante?
ANão — apenas int32 e int64; entrada de ponto flutuante gera erro.
QComo verifico se um bit de permissão está ativo?
AFaça um AND do valor com o bit alvo; um resultado diferente de zero significa que o bit está ativo.
QDesde qual versão o $bitAnd está disponível?
ADisponível desde o MongoDB 6.3.