MongoDB数据类型
MongoDB的文档类似于JSON的格式
json数据类型:
Json包含6中数据类型,只有null、布尔、数字、字符串、数组、对象这几种数据类型.JSON中没有日期类型,只有一种数字类型,没办法区分整形和浮点数,不能区分32位和64位。
MongoDB数据类型
MongoDB保留了JSON的键值特性,添加了一些其他的数据类型。
null | 用于表示空值获不存在字字段 |
32位整形 | javascript中只有一种数字类型,而MongoDB中有上面3中类型,默认情况下shell的数字都被MongoDB当作双精度。在shell下修改文档中的32位整形,也会被转换为64位浮点数。所以尽量不要在shell下面修改文档 |
64位整形 | |
64位浮点数 | |
字符串 | UTF-8字符串数据 |
id和ObjectId | MongoDB中存储的文档必须有一个“_id”,这个键可以是任何值,默认是objectId对象,在集合中,每个文档都有一个唯一的“_id”,来确保集合里面每个文档都能被唯一标识。ObjectId是MongoDB中“_id”的默认对象,生成方式有点类是于UUID,在不同的机器上都能用生存一个唯一的值。 |
日期 | 日期类型存储是从标准纪元开始的毫秒数,不存储时区 |
正则表达式 | 采用javascript的正则表达式语法 |
代码 | 可以包含javascript代码,如 {a:function(){……}} |
二进制 | 任意字节组成的串 |
最大值and最小值 | 是BSON中的特殊类型分别表示可能的最大最小值 |
未定义 | undefined,在javascript中null和undefined是不同的类型 |
数组 | 值的集合表示为数组。同json数组一样,数组是一组值,既可以作为有序对象(队列、栈等)来操作,也可以作为无序对象来操作,数组中可以包含不同的数据类型的对象,甚至是嵌套数组 |
内嵌文档 | 文档可以包含别的文档,也可以嵌入到父文档中。内嵌文档就是把整个MongoDB文档当作另一个文档中键的值。同数组一样MongoDB能够理解内嵌文档的结构,并构建索引,执行查询,更新等。 |