$bit (Atualização Bit a Bit)
Última atualização: 2026-10-09
$bit (Atualização Bit a Bit)
$bit realiza operações bit a bit em campos inteiros: AND, OR, XOR. `{ $bit: { flags: { and: 254 } } }` limpa o bit menos significativo. É atômico e, diferente da maioria dos operadores de atualização, não cria um campo ausente — ele gera erro. Ideal para permissões compactas por máscara de bits e flags, complementando os operadores de consulta $bits*.
| Categoria | Atualização de Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $bit: { <campo>: { and: <valor> | or: <valor> | xor: <valor> } } }
⚙️ Parâmetros
| campo | O campo inteiro ao qual aplicar operações bit a bit. |
|---|---|
| operação bit a bit | Um de and, or, xor com um valor de máscara de bits. |
Retorno:O resultado da atualização
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $bit: AND para limpar o bit menos significativo
// 254 em binário é 11111110
db.users.updateOne(
{ _id: 1 },
{ $bit: { flags: { and: 254 } } }
)
// OR para definir o bit 0
db.users.updateOne(
{ _id: 1 },
{ $bit: { flags: { or: 1 } } }
)
Saída:
// O bit menos significativo é limpo; o segundo exemplo define o bit 0
📌 Notas
- Suporta and, or e xor
- Não cria um campo ausente — gera erro
- Apenas inteiros (int, long)
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQuais operações $bit suporta?
AAND, OR e XOR.
QO que acontece se o campo de $bit estiver ausente?
AEle gera erro em vez de criar; inicialize com $set primeiro.
QComo defino ou limpo um único bit?
ADefina com or: 1 deslocado n à esquerda; limpe com and: o NOT bit a bit disso.