MongoDB的文档类似于JSON,概念上与JavaScript的对象类似。

但JSON仅包含6种数据类型:null、布尔、数字、字符串、数组和对象。

尽管这些类型的表现力已经足够强大,打仍有一些不可或缺的类型。JSON没有日期类型,使得处理日期问题变得繁琐。

只有一种数字类型,没法区分浮点数和整数,更不能区分32位和64位;它也不能表现正则表达式或函数。

MongoDB在保留JSON的键值特性基础上,添加一些其他的数据类型。

null

null表示空值或不存在的字段。

{"x":null}

布尔

布尔类型有两个值:true、false

{"x": true}

32位整数

在shell中,该类型不可用,javascript仅支持64位浮点数。

64位整数

shell会使用特殊的内嵌文档显示64位整数。

64位浮点数

shell中的数字类型

{"x": 3.14}
{"x": 3}

字符串

UTF-8字符串都可以表示为字符串类型

{"x":"foobar"}

符号

shell不支持,它将数据库里的符号类型转换为字符串

对象id

对象id是文档的12字节的唯一ID

{"x":ObjectId()}

日期

日期类型存储的是从标准纪元开始的毫秒数,不存储时区

{"x": new Date()}

正则表达式

文档中可以包含正则表达式,采用JavaScript的语法

{"x": /foobar/i}

代码

文档可以包含javascript代码

{"x": function(){...}}

二进制数据

二进制数据可以由任意字节的串组成,无法在shell使用

最大值

BSON包含的特殊类型,表示可能的最大值,shell不支持

最小值

BSON包含的特殊类型,表示可能的最小值,shell不支持

未定义

文档可以使用未定义类型(JavaScript中的undefined)

{"x":undefined}

数组

值的集合,或列表

{"x":["a","b","c"]}

内嵌文档

文档可以包含文档

{"x":{"foo":"bar"}}

results matching ""

    No results matching ""