MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come devo memorizzare i valori booleani in mongodb?

Boolean è un tipo di campo nativo in BSON (Il formato di archiviazione lato server di MongoDB, noto anche come "Binary JSON"). I booleani utilizzano meno spazio di archiviazione di un numero intero o di una stringa ed evitano qualsiasi effetto collaterale imprevisto del confronto.

Ad esempio, in un MongoDB find() interroga una stringa di "1" non corrisponderà a un valore numerico di 1 o un valore booleano di true . Se vuoi memorizzare valori booleani, usa sicuramente un tipo booleano.

Confrontando la dimensione BSON (in byte) nel mongo shell per completezza:

// 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:la dimensione di base dell'oggetto JSON negli esempi precedenti (senza contare i valori del campo) è 8 byte, quindi la differenza tra Object.bsonsize() riportato è la rappresentazione del valore del campo.