Boolean
je nativní typ pole v BSON
(Formát úložiště na straně serveru MongoDB, známý také jako „binární JSON“). Booleany využívají méně úložiště než celé číslo nebo řetězec a vyhýbají se jakýmkoli neočekávaným vedlejším účinkům porovnávání.
Například v MongoDB find()
dotaz na řetězec "1"
nebude odpovídat číselné hodnotě 1
nebo booleovská hodnota true
. Pokud chcete ukládat booleovské hodnoty, rozhodně použijte booleovský typ.
Porovnání velikosti BSON (v bajtech) v mongo
shell pro úplnost:
// 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
Poznámka:Základní velikost objektu JSON ve výše uvedených příkladech (bez započtení hodnot polí) je 8 bajtů, takže rozdíl mezi nahlášeným Object.bsonsize()
je reprezentace hodnoty pole.