分类目录归档:MongoDB

MongoDB(三)——数据类型

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

1、 null  null类型用于表示空值或不存在的字段,如:{“one”:null}
2、 布尔类型 布尔类型有两上值,’true’和’false’ ,如:{“one”:true}
3、 32位整数    在由于mongoDB的控制台使用JS引擎进行输入,而JS仅支持64位浮点数,所以32位整数将会被自动转义;
4、 64位整数
64位整数与32位整数一样,在MongoDB控制台使用时,会转义成64位浮点数。除外,如果数据库本身存储的数据类型无论是32位整数还是64位整数,使用MongoDB控制台获取后,更改其文档记录(即使没有修改整数本身,只修改了文档的其他部分),并重新使用控制台写回数据库,则其数据类型也会变成了64位浮点数。
除外,使用控制台查看一个64位整数时,可能会不正确定,原因是有些64位的整数不能精确表示为64位浮点数,而控制台呈示都是64位浮点数。
5、 64位浮点数   MongoDB控制台数字的默认类型,如:{“one”:2.02} {“one”:10}
6、 字符串 如:{“one”:”Hello World”}
7、 符号 在MongoDB控制台中不支持这种类型,将自动转义成字符串;
8、 对象id 对象id是文档中唯一的12位的ID ,
在MongoDB来存储文档时,必须有一个“_id”键,这个键可以是任何类型,如果在增加文档时,没有这个_id键,则系统会使用ObjectId对象自动生成一个,在分布式环境中,不同的机器都能用全局唯一的同种方法来生成值,其生成规则为:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11
时间戳      | 机器码  | P I D | 计数器
前4位表示时间戳,时间戳以秒为单位,由于时间戳在前面,可以更好地反映出数据插入时的时间顺序,使的数据更容易查询,建议索引更加容易。
虽然系统会自动创建_id键,但在高并发的应用下建议使用客户端的驱动程序来创建,主要原因是,尽管ObjectId可以生成,但是系统在生成时,还是会产生开销,增加数据库的负担。
在高并发的分布式环境中,只使用以秒为单位的时间戳和机器不能区分其唯一性,故在其后面添加了PID,即MongoDB的进程标识符,前9个字符保证了同一秒钟不同机器不同进程产生的ObjectId是唯一,两位是一个自动递增的计数器,确保相同进程同一秒产生的ObjectId也不一样。
9 日期 从标准纪元开始的毫秒数 { “date”:new Date()}。在mongodb中创建日期的时候使用不同的方式创建的日期是不同的。
在mongodb中使用Date()创建的日期类型是一个字符串的类型,这个字符串中包含时区等数据 。使用new Date()创建的将会是ISODate类型的一个日期对象。同样我们可以使用ISODate()方式去创建日期对象,得到的结果是使用new Date相同的。
10 正则表达式 文档中可以包含正则表达式,遵循 JavaScript 的语法 { “foo”:/foobar/i}
11 代码 文档中可以包含 JavaScript 代码 { “x”: function() {}}
12二进制数据 任意字节的二进制串组成, shell 不支持

13 最大值 表示可能的最大值, shell 不支持
14 最小值 表示可能的最小值, shell 不支持
15 未定义 undefined { “x”: undefined}
16 数组 值的集合或者列表 { “arr”: [“a”,“b”]},数组中的元素可以是不同的。
17内嵌文档 文档可以作为文档中某个 key 的value { “x”:{“foo”:“bar”}}

MongoDB(二)——文档、集合、数据库概念

一、文档

文档是mongodb中的最核心的概念,是其核心单元,我们可以将文档类比成关系型数据库中的每一行数据。多个键及其关联的值有序的放置在一起就是文档。

二、集合

集合就是一组文档的组合。如果将文档类比成数据库中的行,那么集合就可以类比成数据库的表。

三、数据库

在mongodb中的数据库的概念与关系型的数据库中的数据库的概念基本相同。在mongodb中的数据库是多个集合的组合。同样一个mongodb中可以建立多个数据库,这些数据库也是相互独立的,也可以独立进行用户验证。
在给数据库起名的时候有几个是保留的admin、local、config。这几个数据库是mongodb的保留数据库。
admin数据库,是一个root数据库,在这个数据库中添加用户,该用户将继承所有的数据库的权限,以后讲权限的时候会用到。
local数据库,这个数据库不会被复制,只存储本地服务器才能访问的数据库。以后再分片的时候会降到。
config数据库用于保存分片的相关信息。

MongoDB(一)——安装

一、下载

根据自己的系统选择相应版本的mongodb。官网:http://www.mongodb.org/downloads

二、解压缩

Linux系统可以使用命令:

 Window使用压缩软件进行解压缩。

三、准备工作

解压缩后,mongodb目录下存在着几个文件及目录:

我们需要在mongodb主目录下创建一个存放数据库数据文件的data目录,及一个存放日志文件的logs目录,创建后如下:

 四、启动数据库

 五、开机启动

Linux操作如下: