1. 介绍
MongoDB简介
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,它是一个面向集合的、模式自由的文档型数据库。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
面向集合(Collenction-Orented)
意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中
都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库
(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。
模式自由(schema-free)
意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义。提了这么多次"无模式"或"模式自由",它到是个什么概念呢?例如,下面两个记录可以存在于同一个集合里面:
{"name" : "mongo"}
{"age" : 25}
文档型
意思是我们存储的数据是键-值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档.我们把这个数据格式称作“BSON”即“Binary SerializeddOcumentNotation.”每一个文档相当于关系数据库中的一条记录。
MongoDB特征
MongoDB的特点是高性能、易部署、易使用,存储数据非常方便,主要特征有:
面向集合存储,易于存储对象类型的数据
模式自由
支持动态查询
支持完全索引,包含内部对象
支持复制和故障恢复
使用高效的二进制数据存储,包括大型对象(如视频等)
自动处理碎片,以支持云计算层次的扩展性
支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程序,社区中也提供了对Erlang及.NET等平台的驱动程序
文件存储格式为BSON(一种JSON的扩展)
MongoDB适用场景
持久化缓存层
高效的实时性
用于对象及JSON数据的存储
高伸缩性的场景
大尺寸、低价值的数据存储
MongoDB不适用场景
要求高度事务性的系统
传统的商业智能应用
复杂的表查询
以上部分都是从网上摘出的。
注意:32位操作系统支持的最大文件为2GB,所以做大文件海量储存的朋友要选择64位的系统安装。
2. 下载
下载mongodb的windows版本,有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
表示启动成功,最后两行说明的数据库端口和Web端口,默认分别是27017和28017,在浏览器中打开http://localhost:28017,可以看到其相关的一些信息。
可以通过添加参数--port的方式,来修改数据库端口:D:/mongodb/bin>mongod.exe--port 10001 --dbpath D:/mongodb/data/db
关闭后可直接双击bin下的mongod.exe。
服务器启动后,用客户端试用下,它自带有个客户端(MongoDB shell)bin/mongo.exe。再打开一个cmd输入:D:/mongodb/bin>mongo,或者双击mongo.exe,即可进行mongodb的客户端命令操作了,测试一下:
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ _id : ..., a : 1 }
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
参数:
--dbpath这个指定数据库的存放路径
--logpath指定日志文件
--logappend日志是以追加的方式输出的
--bind_ip绑定IP地址
--directoryperdb每个数据库单独存放在一个文件夹内
--install安装到Windows服务,默认服务名为 MongoDB
--remove 移除Windows服务
以后就可以在cmd下用命令net start MongoDB和net stop MongoDB来启动和停止MongoDB了,也可以在本地服务中看到“MongoDB”通过界面来管理该服务。
运行bin文件夹下mongo.exe 客户端测试一下吧。
5. 停止MongoDB
最稳妥的方式,处理完当前所有操作并将缓存的数据保存到磁盘上才停止。
进入mongo shell
>user admin
>db.shutdownServer();
当然我们也可以直接关闭进程,但这种方式会导致缓存中的数据未急时刷新保存到磁盘上而丢失。