MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie soll ich boolesche Werte in Mongodb speichern?

Boolean ist ein nativer Feldtyp in BSON (Serverseitiges Speicherformat von MongoDB, auch bekannt als „Binary JSON“). Boolesche Werte benötigen weniger Speicherplatz als Integer oder Strings und vermeiden unerwartete Nebeneffekte des Vergleichs.

Zum Beispiel in einer MongoDB find() Abfrage einer Zeichenfolge von "1" stimmt nicht mit einem numerischen Wert von 1 überein oder ein boolescher Wert von true . Wenn Sie boolesche Werte speichern möchten, verwenden Sie auf jeden Fall einen booleschen Typ.

Vergleich der BSON-Größe (in Byte) im mongo Shell der Vollständigkeit halber:

// 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

Hinweis:Die Basisgröße des JSON-Objekts in den obigen Beispielen (ohne Berücksichtigung der Feldwerte) beträgt 8 Byte, also die Differenz zwischen dem gemeldeten Object.bsonsize() ist die Darstellung des Feldwerts.