1. 存储类型
mongodb文档类似于json,但不是完全的json。
json只有六种类型:null, bool, 数字,字符串,数组,对象。
但是mongo的文档在json的基础上还扩展了几种类型, 比如,日期类型,整数,浮点数。
mongodb真正存储在磁盘上是使用bson(binary json)。
2. 常用数据类型
null: 表示不存在或空值。
bool : true 和 false。
string: 字符串, 用引号包含。
3. 数字
json中只有数字类型。
而mongodb中有三种:
32位整数
64位整数
64为浮点数
数字默认是按照浮点数存储的。
4. 日期
日期类型存储从标准纪元开始的毫秒数。
{"x" : new Date()}
5. 数组
可以存储数组
{"x" : ["a", "b", "c"]}
6. 内嵌文档
把一个文档作为另一个文档的一个值。
{“x” : {"foo" : "bar"}}
7. _id
mongdb文档必须有个“_id”key,默认是个ObjectId对象。
ObjectId使用12个字节存储空间,每个字节两位16进制数字,是24位字符串。
分配如下图所示
前四个字节为时间戳。由于在前面,使Objectid大概按照时间戳排序。将其作为索引提高效率。
pid为进程标识符,
计数器为每秒的计数器。每秒可以生成(16*16 = 256)的三次方。
_id可以程序来生成,不用系统自动,这就需要保证每个id不能重复。
8. 其他
文档中还可以包含正则表达式, javascript代码,二进制数据。