$bitXor (OU Exclusivo Bit a Bit)
Última atualização: 2026-10-09
$bitXor (OU Exclusivo Bit a Bit)
$bitXor executa um OU exclusivo bit a bit (XOR) sobre inteiros. Disponível desde o MongoDB 6.3, aceita um array de inteiros (ou um único número). O XOR produz 1 onde os bits diferem e 0 onde coincidem, sendo útil para checksums, inversão de bits e ofuscação leve, como aplicar XOR a um valor com uma chave. Qualquer argumento nulo ou ausente resulta em null; os operandos devem ser int32 ou int64. Observe que aplicar XOR duas vezes com o mesmo valor restaura o original, um uso clássico de sua reversibilidade.
| Categoria | Matemática |
|---|---|
| Versão do MongoDB | 6.3+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $bitXor: [ <inteiro1>, <inteiro2>, ... ] }
⚙️ Parâmetros
| inteiro | Inteiros int32 ou int64, ou expressões que resolvam para eles; pelo menos dois. |
|---|
Retorno:O XOR 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):
// $bitXor: inverter os 8 bits menos significativos com 255
db.users.aggregate([
{ $project: {
masked: { $bitXor: ['$score', 255] }
} }
])
Saída:
{ '_id': 1, 'masked': 200 }
{ '_id': 2, 'masked': 155 }
📌 Notas
- Bits iguais dão 0 e bits diferentes dão 1
- Aplicar XOR duas vezes com o mesmo valor restaura o original, permitindo truques reversíveis
- Apenas int32 e int64 são suportados
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a regra de $bitXor?
ABits iguais produzem 0 e bits diferentes produzem 1; por exemplo, 5 XOR 3 é 6.
QPara que serve o $bitXor?
AInversão de bits, checksums simples e ofuscação leve.
QPor que aplicar XOR duas vezes restaura o valor?
AO XOR é auto-inverso: x XOR k XOR k sempre resulta em x.