sql >> Database >  >> NoSQL >> MongoDB

Hoe moet ik booleaanse waarden opslaan in mongodb?

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.



  1. MongoDB-databasestructuur en best practices Help

  2. Mongo docker-configuratie verbroken na opnieuw opstarten (unifi-controller op raspberry pi)

  3. Hoe kan ik de MongoDB native Javascript-driver beloven met bluebird?

  4. Mongoose:verzameling wordt niet ingevuld bij gebruik als ref in een ander document