sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo debo almacenar valores booleanos en mongodb?

Boolean es un tipo de campo nativo en BSON (formato de almacenamiento del lado del servidor de MongoDB, también conocido como "JSON binario"). Los booleanos utilizan menos almacenamiento que un número entero o una cadena y evitan los efectos secundarios inesperados de la comparación.

Por ejemplo, en MongoDB find() consultar una cadena de "1" no coincidirá con un valor numérico de 1 o un valor booleano de true . Si desea almacenar valores booleanos, definitivamente use un tipo booleano.

Comparando el tamaño BSON (en bytes) en mongo shell para completar:

// Number (JavaScript double) - 8 bytes
> var foo = { a: 1 }
> Object.bsonsize(foo)
16

// UTF-8 String - 6 bytes
> var foo = { a: '1'}
> Object.bsonsize(foo)
14

// 32-bit int - 4 bytes
> var foo = { a: NumberInt(1)}
> Object.bsonsize(foo)
12

// Boolean - 1 byte
> var foo = { a: true}
> Object.bsonsize(foo)
9

Nota:el tamaño base del objeto JSON en los ejemplos anteriores (sin contar los valores de campo) es de 8 bytes, por lo que la diferencia entre el Object.bsonsize() informado es la representación del valor del campo.