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.