$bitsAllSet (Todos os Bits Definidos)
Última atualização: 2026-10-09
$bitsAllSet (Todos os Bits Definidos)
$bitsAllSet corresponde a documentos onde todos os bits nas posições fornecidas estão definidos como 1. `{ flags: { $bitsAllSet: 5 } }` (binário 101) corresponde a documentos onde o bit 0 e o bit 2 são ambos 1. Os bits são numerados a partir do menos significativo (0). Funciona em inteiros (int, long) e BinData; ideal para permissões por máscara de bits.
| Categoria | Bit a Bit |
|---|---|
| Versão do MongoDB | 3.2+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ <campo>: { $bitsAllSet: <máscara de bits ou array de posições> } }
⚙️ Parâmetros
| campo | O campo inteiro ou BinData a corresponder. |
|---|---|
| máscara de bits | Uma máscara de bits inteira ou matriz de posições, por exemplo 5 ou [0, 2]. |
Retorno:Cursor dos documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $bitsAllSet: bits 0 e 2 ambos definidos
// 5 em binário é 101
db.users.find({ flags: { $bitsAllSet: 5 } })
// Equivalente: array de posições
db.users.find({ flags: { $bitsAllSet: [0, 2] } })
Saída:
// Retorna usuários cujos flags têm os bits 0 e 2 ambos definidos
📌 Notas
- Os bits são numerados a partir do menos significativo (0)
- Funciona apenas em inteiros (int, long) e BinData
- Diferente de $bitsAnySet, cada bit listado deve ser 1
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $bitsAllSet e $bitsAnySet?
A$bitsAllSet exige que cada bit listado seja 1; $bitsAnySet precisa apenas de um.
QPosso usar um array de posições em vez de uma máscara de bits?
ASim, { $bitsAllSet: [0, 2] } equivale a { $bitsAllSet: 5 }.
Q$bitsAllSet suporta floats?
ANão, apenas int, long e BinData.