Definición
Nuevo en la versión 6.3.
Sintaxis
El operador $bitNot tiene la siguiente sintaxis:
{ $bitNot: <expression> }
La expresión puede ser un único argumento o un arreglo con un elemento int o long.
Comportamiento
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 la expresión se evalúa como null, la operación devuelve null.
Ejemplo
El ejemplo en esta página utiliza la colección switches:
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 $bitNot en la etapa $project:
db.switches.aggregate( [ { $project: { result: { $bitNot: "$a" } } } ])
La operación devuelve los siguientes resultados:
[ { _id: 0, result: -1 }, { _id: 1, result: -3 }, { _id: 2, result: -4 } ]