1. 介绍

MongoDB简介

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,它是一个面向集合的、模式自由的文档型数据库。他支持的数据结构非常松散,是类似jsonbjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

面向集合(Collenction-Orented

意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中

都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库

RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)

模式自由(schema-free)

意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义。提了这么多次"无模式""模式自由",它到是个什么概念呢?例如,下面两个记录可以存在于同一个集合里面:

{"name" : "mongo"}

{"age" : 25}

文档型

意思是我们存储的数据是键-值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档.我们把这个数据格式称作“BSON”即“Binary SerializeddOcumentNotation.”每一个文档相当于关系数据库中的一条记录。

MongoDB特征

MongoDB的特点是高性能、易部署、易使用,存储数据非常方便,主要特征有:

面向集合存储,易于存储对象类型的数据

模式自由

支持动态查询

支持完全索引,包含内部对象

支持复制和故障恢复

使用高效的二进制数据存储,包括大型对象(如视频等)

自动处理碎片,以支持云计算层次的扩展性

支持PythonPHPRubyJavaCC#JavascriptPerlC++语言的驱动程序,社区中也提供了对Erlang.NET等平台的驱动程序

文件存储格式为BSON(一种JSON的扩展)

MongoDB适用场景

持久化缓存层

高效的实时性

用于对象及JSON数据的存储

高伸缩性的场景

大尺寸、低价值的数据存储

MongoDB不适用场景

要求高度事务性的系统

传统的商业智能应用

复杂的表查询

以上部分都是从网上摘出的。

注意:32位操作系统支持的最大文件为2GB,所以做大文件海量储存的朋友要选择64位的系统安装。

2. 下载

下载mongodbwindows版本,有32位和64位版本。

下载地址:http://www.mongodb.org/downloads

我这里选的是:mongodb-win32-i386-2.4.5.zip版本

3. 安装

2.1 解压mongodb-win32-i386-2.4.5.zip,创建路径D: \mongodb ,将解压后的Bin文件Copy to 此文件夹下

2.2 D: \mongodb 下建立Data文件夹D:\ mongodb\data,然后分别建立db,log两个文件夹,至此mongodb下有以下文件夹

D:\ mongodb\bin

D:\ mongodb\data\db

D:\ mongodb\data\log

log文件夹下创建一个日志文件MongoDB.log,即D:\ mongodb\data\log\MongoDB.log

为什么建上述文件夹

因为启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。默认文件夹路径为c:/data/db.使用系统默认文件夹路径时,启动服务无需加--dbpath参数说明,但文件夹还要手工创建

注意:上述文件夹可以根据自己的需要建在不同的目录下面。

4. 安装方式介绍

4.1  程序启动方式

打开cmd命令行,进入D:/mongodb/bin目录,输入如下的命令启动mongodb服务:

D:/mongodb/bin>mongod.exe --dbpath D:/mongodb/data/db

182813991.jpg

表示启动成功,最后两行说明的数据库端口和Web端口,默认分别是2701728017,在浏览器中打开http://localhost:28017,可以看到其相关的一些信息。

可以通过添加参数--port的方式,来修改数据库端口:D:/mongodb/bin>mongod.exe--port 10001 --dbpath D:/mongodb/data/db

关闭后可直接双击bin下的mongod.exe

服务器启动后,用客户端试用下,它自带有个客户端(MongoDB shellbin/mongo.exe。再打开一个cmd输入:D:/mongodb/bin>mongo,或者双击mongo.exe,即可进行mongodb的客户端命令操作了,测试一下:

182853490.jpg

> db.foo.insert( { a : 1 } )
> db.foo.find()
{ _id : ..., a : 1 }

182916107.jpg

4.2  windows service方式

这样每次启动MongoDB很不方便,我们可以像安装的MySQL一样,把它作为Windows服务,这样就方便多了。

D:\mongodb\bin>mongod --logpath D:/mongodb/data/log/MongoDB.log--logappend --dbpath D:/mongodb/data/db --directoryperdb --serviceName MongoDB –install

182934590.jpg

参数:

--dbpath这个指定数据库的存放路径

--logpath指定日志文件

--logappend日志是以追加的方式输出的

--bind_ip绑定IP地址

--directoryperdb每个数据库单独存放在一个文件夹内

--install安装到Windows服务,默认服务名为 MongoDB

--remove 移除Windows服务

以后就可以在cmd下用命令net start MongoDBnet stop MongoDB来启动和停止MongoDB了,也可以在本地服务中看到“MongoDB通过界面来管理该服务。

运行bin文件夹下mongo.exe 客户端测试一下吧。

5. 停止MongoDB

最稳妥的方式,处理完当前所有操作并将缓存的数据保存到磁盘上才停止。

进入mongo shell

>user admin

>db.shutdownServer();

当然我们也可以直接关闭进程,但这种方式会导致缓存中的数据未急时刷新保存到磁盘上而丢失。