您的位置:首页 > 数据库 > Mongodb

Mongodb的数据类型

2016-08-30 10:57 309 查看

逻辑结构关系对比

我们用一张表格来对关系型数据库和MongoDB进行对比
MongoDB
关系型数据库
文档对象(document)
行(row)
集合(collection)
表(table)
数据库(database)
数据库(database)

数据存储结构

MySQL的数据存储结构:
MySQL的每个数据库存放在一个与数据库同名的文件夹中,MySQL如果使用MyISAM存储引擎,数据库文件类型就包括frm、MYD、MYI.
MongoDB的数据存储结构:
MongoDB的默认数据目录是/data/db,它负责存储所有的MongoDB的数据文件,在MongoDB内部,每个数据库都包含一个.ns文件和一些数据文件,而且这些数据文件会随着数据量的增加而变得越来越多。所以如果系统中有一个叫做mydb的数据库,那么构成mydb这个数据库的文件就会由mydb.ns,mydb.0,mydb.1等等组成。

MongoDB数据类型

MongoDB的文档使用BSON(Binary JSON)来组织数据,BSON类似于JSON,JSON只是一种简单的表示数据的方式,只包含了6种数据类型(null、布尔、数字、字符串、数组及对象),不能完全满足复杂业务的需要,因此,BSON还提供了日期、32位数字、64位数字等类型,以下对MongoDB数据类型进行简要说明:
类型
描述
null
用于表示空值或者不存在的字段

{“x”,null}
布尔
‘true’和’false’

{“x”,true}
32位整数
Shell中这个类型不可用,MongoDB在控制台使用JS引擎进行输入,而JS仅支持64位浮点数,所以32位整数将会被自动转义
64位整数
Shell中这个类型不可用, 64位整数与32位整数一样,在MongoDB控制台使用时,会转义成64位浮点数
64位浮点数
Shell中的数字都是这种类型,下面是浮点数

{“x”:3.14}、{“x”:3}
字符串
UTF-8字符串都可表示为字符串类型的数据

{“x”:”foobar”}
符号
Shell不支持这种类型,将自动转义成字符串
对象ID
对象id是文档的12字节的唯一ID,时间戳|机器|PID|计数器

{“x”:ObjectId()}
日期
日期类型存储的是从标准纪元开始的毫秒数

{“x”:new Date()}
正则表达式
文档中可以包含正则表达式,其正则表达式采用JS语法来表示

{“x”:/foobar/i}
代码
文档中可以包含js代码

{“x”:function(){…}}
二进制数据
二进制数据可以由任意字节的串组成,不过Shell无法使用
最大值
BSON包括一个特殊类型,表示可能的最大值

Shell无法使用
最小值
BSON包括一个特殊类型,表示可能的最小值

Shell无法使用
未定义
文档中也可以使用未定义类型

{“x”:undefined}
数组
值的集合或者列表可以表示成数组

{“x”:[“a”,”b”,”c”]}
内嵌文档
文档可以包含别的文档

{“x”:{“foo”:”bar”}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: