Mongodb入门篇
1.下载
当然还是推荐大家去官网下:http://www.mongodb.org/。目前的稳定版本是2.4.4,他的更新周期不快,已经比较成熟了。如果你很晚才看到这篇文章,建议按照官网发布的最新稳定版下载。mongodb提供了源码包和非源码包,源码包需要自己编译后才能使用,非源码包解压后可直接使用。这里只讲解非源码包
2.简单介绍
解压下载好的非源码包会包含bin目录,里面存放着mongodb的各种可执行文件。下面就简单讲解下这些文件的用途:
a) mongod - Mongodb服务通过执行该文件启动。启动时可指定数据存放目录及日志存放目录等。
b) mongos - Mongodb Sharding控制器,主要用在Mongodb分布式存储上,为数据的插入和查询提供路由服务。
c) mongo - Mongodb的CLI(Comannd Line Inte易做图ce)为管理员或者开发人员提供操作mongodb的接口,纯命令行形式
d) mongodump - MongoDB dump工具,用于备份文件以及获取快照,可指定备份策略,同时配合mongorestore作为恢复数据库一起使用
e) mongorestore - MongoDB备份的恢复工具,配合mongodump一起使用
f) mongoexport - 对某个mongodb实例以Json或者CSV格式进行数据导出,若要导出所有数据,建议使用monogodump,同时配合mongoimport作为数据导入一起使用
g) mongoimport - 对某个mongodb实例导入Json或者CSV格式的数据,配合mongoexport一起使用
h) mongofiles - 用于往GridFS写入文件或者从GridFS中读取文件(GridFS是Monogodb提供的文件系统,用于管理数据文件)
i) mongostat - 用来查看当前运行的mongodb服务及mongos路由服务的状态
j) mongotop - 用来查看某个Mongodb实例的数据读写时间,并提供了某个数据库级别的数据读写时间,每秒返回统计值
k) mongosniff - 类似tcpdump的工具,主要用来实时查看mongodb的运行情况,更多时候是给开发人员使用
l) mongoperf - 用来检查mongodb运行时磁盘的IO情况
详细的内容可以参考官方文档:http://docs.mongodb.org/manual/reference/program/
3.使用
这里只介绍最简单的使用方法,毕竟是入门嘛,太复杂就不叫入门了。OS:Ubuntu_x64 12.10 , Mongodb version:mongodb-linux-x86_64-2.2.3.tgz
a) 启动Mongodb服务
[plain]
./mongod --port 27017 --bind_ip 127.0.0.1 --dbpath data/ --logpath log/mongodb.log --logappend --fork
参数解释:
port:mongodb进程所使用的端口,末认为27017
bind_ip:mongodb进程所绑定的IP
dbpath:数据存放目录,需要事先建立
logpath:日志存放路径,需要事先建立
logappend:以追加的方式记录日志,如果不加此参数,则每次启动时都重写日志文件
fork:以后台方式运行进程
以上是较为详细配置,一般情况下不用指定IP和端口,所以更简单的启动方式如下
[plain]
./mongod --dbpath data/ --logpath log/mongodb.log --logappend --fork
启动成功会打印类似的信息
[plain]
forked process: 8407
all output going to: /home/luonanqin/study/mongodb-linux-i686-2.2.3/bin/log/mongodb.log
child process started successfully, parent exiting
b) 访问Mongodb
通过terminal访问Mongodb
[plain]
./mongo --port 27017 --host 127.0.0.1
如果端口默认,则可以只指定host即可。连接后如下所示
[plain]
MongoDB shell version: 2.2.3
connecting to: 127.0.0.1:27017/test
>
接下来就可以增删查改了。
c) 增删查改
mongodb不同于关系型数据在于他有一个叫collection的东西,当然不能把他理解为table。collection没有一个特定的结构,具体的数据存放在collection里面,一个db可以有多个collection
之前说过Mongodb存储的数据格式类似Json,其实际的格式为{key:value}。如果value是List或者数组,则格式为{key:[value1, value2]}。如果value是Map,则格式为{key:{{key1:value1},{key2:value2}}}。如果value是字符串,则需要用双引号引起来,整型长整型等则不需要引号
实例如下
[plain]
>use foo #新建数据库,如果只执行这条命令而不插入数据,则不会建立成功#
>db #显示当前使用的数据#
#增加#
>db.fooCollection.insert({name:"luonanqin"}); #fooCollection为collection的名字,insert表示插入操作#
#查询#
>db.fooCollection.find(); #查询fooCollection中所有的数据#
{ "_id" : ObjectId("51bd9b84f5a86f460f74659a"), "name" : "luonanqin" } #只插入了一条数据#
#更新#
>db.abc.update({"_id" : ObjectId("51bd9b84f5a86f460f74659a")},{$set: {name:"luonanqin2"}}); #更新name的值为luonanqin2#
#删除#
>db.abc.remove({name:"luonanqin2"});
以上就是对Mongodb的最简单的操作,如果想了解更多用法,官网上说的很清楚,多看看会有不少收获哦。