我看到在mongodb中存储布尔信息的三种主要可能性:
在使用的存储空间和查询速度方面,每种方法的优点/缺点是什么?
Ste*_*nie 31
Boolean
是BSON中的本机字段类型(MongoDB的服务器端存储格式,又名"二进制JSON").布尔值比整数或字符串使用更少的存储空间,并避免任何意外的比较副作用.
例如,在MongoDB find()
查询中,字符串"1"
与数值1
或布尔值不匹配true
.如果要存储布尔值,请务必使用布尔类型.
比较mongo
shell中BSON大小(以字节为单位)的完整性:
// 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
Run Code Online (Sandbox Code Playgroud)
注意:上面示例中的JSON对象的基本大小(不计算字段值)是8个字节,因此报告的差异Object.bsonsize()
是字段值的表示.
归档时间: |
|
查看次数: |
20668 次 |
最近记录: |