Boolean
là một loại trường gốc trong BSON
(Định dạng lưu trữ phía máy chủ của MongoDB, hay còn gọi là "Binary JSON"). Boolean sử dụng ít bộ nhớ hơn một số nguyên hoặc chuỗi và tránh mọi tác dụng phụ không mong muốn của việc so sánh.
Ví dụ:trong MongoDB find()
truy vấn một chuỗi "1"
sẽ không khớp với giá trị số của 1
hoặc giá trị boolean của true
. Nếu bạn muốn lưu trữ các giá trị boolean, chắc chắn phải sử dụng kiểu boolean.
So sánh kích thước BSON (tính bằng byte) trong mongo
vỏ cho sự hoàn chỉnh:
// 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
Lưu ý:kích thước cơ sở của đối tượng JSON trong các ví dụ trên (không tính giá trị trường) là 8 byte, do đó, sự khác biệt giữa Object.bsonsize()
được báo cáo là đại diện của giá trị trường.