MongoDB一种非关系型数据库(NoSql),是一种强大、灵活、可扩展的数据存储方式,因为MongoDB是文档模型,自由灵活很高,可以让你在开发过程中畅顺无比,对于大数据量、高并发、弱事务的互联网应用,MongoDB可以应对自如,MongoDB内置的水平扩展机制提供了从百万到十亿级别的数据量处理能力,还对MapReduce式聚合的支持,以及对地理空间索引的支持。
二.安装与配置
1.下载安装
http://www.mongodb.org/downloads
我的系统是Windows7 32位,所以我下载对应的版本mongodb-win32-i386-2.6.8.zip
2.安装和配置
第一步:解压到一个盘上,例如我的解压的目录D:\mongodb,如图所示:
第二步:配置存放日志和数据的目录,不然mongoDB启动不起来,如图所示:
我们先运行cmd.exe进入dos命令界面,然后进入cd D:\mongodb\bin目录下,我们接下来我们要进行配置存放日志和数据的目录的文件,我们通过帮助命令来查看哪些命令,如图所示:
我们从中找到了(1)--logpath arg: arg是设置存放日志的路径(2)--dbpath arg:arg是存放数据文件的路径
先配置数据的目录,例如我想存放在D:\mongodb\data\db这个目录下,我们在运行cmd.exe进入dos命令界面,然后进入cd D:\mongodb\bin目录下,运行mongod.exe命令,如图所示:
说明:报错是因为需要我们手动先创建D:\mongodb\data\db的文件路径,我们创建好路径在执行一次,这回成功了,如图所示:
配置日志路径,例如我想存放在D:\mongodb\data\log 这个目录下,我们在运行cmd.exe进入dos命令界面,然后进入cdD:\mongodb\bin目录下,运行mongod.exe命令mongod.exe --logpath=D:\mongodb\data\log\mongodb.log ,如图所示:
第三步:测试一下是否配置正常
我们在运行cmd.exe进入dos命令界面,然后进入cd D:\mongodb\bin目录下,运行mongo命令,测试一下连接,如图所示:
出现错误
说明:没有启动服务器,我们需要自己配置MongoDB服务器,我们在D:\mongodb目录下,创建一个mongodb.config 配置文件,有两个属性logpath和dbpath,分别设定值,就是刚才我们配置的路径,如图所示:
mongod.exe --config d:\mongodb\mongodb.config来启动MongoDB服务器,--config 选项表示启动时通过d:\mongodb\mongodb.config配置文件的信息配置服务器。如图所示:
这个dos命令界面先不要关闭,MongoDB服务器在运行,我在新打开一个dos命令界面,先进入到cd D:\mongodb\bin目录下,然后在运行mongo命令测试一下链接,如图所示:
说明这时配置成功。
三.添加MongoDB到Windows Service
我们当我们把运行MongoDB服务器的dos命令界面关掉,这样我们就不能链接MongoDB,我们需要像mySql那样,添加到Windows Service,然后在命令行上启动服务和关闭服务,这样方便我们操作和管理服务。
我们接下来需要把MongoDB到Windows Service,用到的命令是--install设定安装MongoDB为服务器到Windows Service
第一步:执行—install,以管理员的启动cmd, 进入dos命令界面,先进入到cd D:\mongodb\bin目录下,执行
D:\mongodb\bin>mongod.exe--dbpath=d:\mongodb\data\db --logpath=d:\mongodb\data\log\log.txt --install --serviceName "MongoDB" 如图所示:
第二步:启动/关闭MongoDB服务
netstart mongodb 启动MongoDB服务
net stop mongodb 启动MongoDB服
四:测试一下MongoDB的shell
第一步:运行cmd.exe, 进入dos命令界面,先进入到cd D:\mongodb\bin目录下,运行mongo命令,进入shell,查看数据库show dbs,如图所示:
第二步:切换并产生数据库
在切换数据库时,如果数据库不存在,则直接产生数据库,use test:如图所示:
第三步:创建了一个集合并保存了数据
创建了名为zhengcy的集合
db.zhengcy.insert({username:'zcy'})
第三步:查找zhengcy集合所有的数据
db.zhengcy.find()