Boolean
is een native veldtype in BSON
(MongoDB's server-side opslagformaat, ook bekend als "Binary JSON"). Booleans gebruiken minder opslagruimte dan een geheel getal of tekenreeks en voorkomen onverwachte neveneffecten van vergelijking.
Bijvoorbeeld in een MongoDB find()
zoek een string van "1"
komt niet overeen met een numerieke waarde van 1
of een booleaanse waarde van true
. Als je booleaanse waarden wilt opslaan, gebruik dan zeker een booleaans type.
Vergelijking van de BSON-grootte (in bytes) in de mongo
shell voor de volledigheid:
// 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
Opmerking:de basisgrootte van het JSON-object in de bovenstaande voorbeelden (de veldwaarden niet meegerekend) is 8 bytes, dus het verschil tussen de gerapporteerde Object.bsonsize()
is de representatie van de veldwaarde.