MongoDB数据类型
MongoDB的文档类似于JSON
JSON 类型 有 null 、 布尔 、数字 、 字符串 、数组 和 对象
JSON 缺点 :
1. 没有 日期类型
2. 只有一个 数字类型 , 没有 32位数字 64位数字 浮点数 等。
3. 没有其他常用类型 ,比如 正则表达式 或 函数。
那么 MongoDB 的 扩展BSON 包含哪些类型:
1. null
表示空值 或 不存在的字段
{"x" : null}
2. 布尔
true 和 false
{"x" : true}
3. 32位整数
shell 中 不支持 , javascript 只支持 64位浮点数 ,所以 32位整数 会被转换
4. 64位整数
shell 中 不支持,64位整数 可以用一种特殊的内嵌文档来显示(以后再说明)。
5. 64位浮点数
{"x" : 3.14}
{"x" : 3 }
上面都是浮点数
6.字符串
支持 UTF-8 字符串集
{"x" : "foobar"}
7.字符 和 符号
shell 中 不支持,shell 会自动转换成 字符串类型。
8. 对象id
对象id 是12位文档唯一ID 。
{"x" : ObjectId()}
9. 日期
日期类型存储的是从标准纪元开始的毫秒数。不存储时区:
{"x" : new Date()}
10. 正则表达式
采用javascript的正则表达式语法
{"x" : /foobar/i}
11. 代码
可以包含javascript代码
{"x" : function() { /* …… */} }
12. 二进制数据
shell 中 不支持,可以由任意字节的串组成。
13. 最大值
shell 中 不支持,一个特殊类型 表示可能的最大值。
14. 最小值
shell 中 不支持,一个特殊类型 表示可能的最小值。
15. 未定义
在 javascript中 null 和 undefined 是不同类型,所以 MongoDB 也支持这个类型。
{"x" : undefined}
16. 数组
值的集合 或 列表 表示成数组
{"x" : ["a", "b" , "c"]}
17. 内嵌文档
文档中 包含 别的文档, 也可以作为值嵌入到父文档中 :
{"x" : {"foo" : "bar"}}