本文导读:Mongodb是一种强大,灵活,可扩展的数据存储方式。它扩展了关系型数据库众多有用的功能,如索引,范围查询和排序。 MongoDB的文件存储格式为BSON,同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型.与数据库打交道的那些应用。例如,JSON没有日期类型,这会使得处理本来简单的日期问题变得非常繁琐。只有一种数字类型,没法区分浮点数和整数,更不能区分32位和64位数字。也没有办法表示其他常用类型,如正则表达式或函数。 下面是MongoDB的支持的数据类型: 1、 null: null用于表示空值或者不存在的字段。 { "x":null} 2、布尔: 布尔类型有两个值'true'和'false1'. { "X":true} 3、32位整数: 类型不可用。JavaScript仅支持64位浮点数,所以32位整数会被自动转换。 4、64位整数: 不支持这个类型。shell会使用一个特殊的内嵌文档来显示64位整数, 5、64位浮点数: shell中的数字都是这种类型。下面的表示都是浮点数: { "X" : 3.1415926} { "X" : 3} 6、字符串: UTF-8字符串都可表示为字符串类型的数据: { "x" : "foobar"} 7、符号: 不支持这种类型。shell将数据库里的符号类型转换成字符串。 8、对象id: 对象id是文档的12字节的唯一 ID, { "X" :ObjectId() } 9、日期: 日期类型存储的是从标准纪元开始的毫秒数。不存储时区: { "X" : new Date()} 10、正则表达式: 文档中可以包含正则表达式,采用JavaScript的正则表达式语法: { "x" : /foobar/i} 11、代码: 文档中还可以包含JavaScript代码:{ "x" : function() { /* …… */ }} 12、二进制数据: 二进制数据可以由任意字节的串组成。不过shell中无法使用。 13、最大值: BSON包括一个特殊类型,表示可能的最大值。shell中没有这个类型。 14、最小值: BSON包括一个特殊类型,表示可能的最小值。shell中没有这个类型。 15、未定义: 文档中也可以使用未定义类型:{ "x":undefined} 16、数组: 值的集合或者列表可以表示成数组:{ "x" : ["a", "b", "c"]} 17、内嵌文档: 文档可以包含别的文档,也可以作为值嵌入到父文档中,数据可以组织得更自然些,不用非得存成扁平结构的:{ "x" : { "food" : "noodle"}}