Boolean
to natywny typ pola w BSON
(Format przechowywania po stronie serwera MongoDB, znany również jako „binarny JSON”). Wartości logiczne zajmują mniej miejsca niż liczba całkowita lub łańcuch i unikają nieoczekiwanych efektów ubocznych porównania.
Na przykład w MongoDB find()
zapytaj o ciąg znaków "1"
nie dopasuje wartości liczbowej 1
lub wartość logiczna true
. Jeśli chcesz przechowywać wartości logiczne, zdecydowanie użyj typu logicznego.
Porównanie rozmiaru BSON (w bajtach) w mongo
powłoka dla kompletności:
// 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
Uwaga:bazowy rozmiar obiektu JSON w powyższych przykładach (nie licząc wartości pól) to 8 bajtów, więc różnica między raportowanym Object.bsonsize()
jest reprezentacją wartości pola.