Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

$bitAnd (operador de expresión)

Nuevo en la versión 6.3.

$bitAnd

Devuelve el resultado de una operación de and bit a bit en un arreglo con los valores int o long.

El operador tiene la siguiente $bitAnd sintaxis:

{ $bitAnd: [ <expression1>, <expression2>, ... ] }

Si los operandos incluyen tanto enteros como valores largos, MongoDB extiende la señal del resultado entero calculado y devuelve un valor largo. De lo contrario, si los operadores incluyen solo números enteros o solo long, MongoDB devuelve resultados con el tipo de valor correspondiente.

Nota

Todos los números enmongoshson de tipo double, no enteros. Para especificar enteros enmongosh, utilice el constructor Int32() o Long(). Para obtener más información, consulte Int32o Long.

Para saber cómo tu controlador de MongoDB gestiona los valores numéricos, consulta la documentación del controlador.

Si alguno de los argumentos en el arreglo es de un tipo de datos diferente, como un string, un double o un decimal, MongoDB devuelve un error.

Si el argumento es un arreglo vacío, la operación devuelve Int32(-1).

Si alguno de los operandos equivale a null, la operación devuelve null.

Los ejemplos de esta página utilizan la colección switches, que contiene los siguientes documentos:

db.switches.insertMany( [
{ _id: 0, a: Int32(0), b: Int32(127) },
{ _id: 1, a: Int32(2), b: Int32(3) },
{ _id: 2, a: Int32(3), b: Int32(5) }
] )

La siguiente agregación utiliza el operador $bitAnd $project en la etapa:

db.switches.aggregate( [
{
$project: {
result: {
$bitAnd: [ "$a", "$b" ]
}
}
}
])

La operación devuelve los siguientes resultados:

[
{ _id: 0, result: 0 }
{ _id: 1, result: 2 }
{ _id: 2, result: 1 }
]

La siguiente agregación utiliza el operador $bitAnd $project en la etapa:

db.switches.aggregate( [
{
$project: {
result: {
$bitAnd: [ "$a", Long("63") ]
}
}
}
])

La operación devuelve los siguientes resultados:

[
{ _id: 0, result: Long("0") }
{ _id: 1, result: Long("2") }
{ _id: 2, result: Long("3") }
]