MongoDB入门

 MongoDB是一个基于分布式文件存储的数据库,并且它是非关系型数据库,用C++编写,最重要的是他开源,咱们可以多学习一下别人的成果。数据存储结构也比较特别,是json一样的结构。传说读取速度很快,可惜我没做过实验,有兴趣的朋友可以根据《Mongodb集群搭建的三种方式 》这篇文章自己搭建个集群测试一下。废话不多说,接下来就介绍下如何使用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 Interface)为管理员或者开发人员提供操作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服务

./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和端口,所以更简单的启动方式如下

./mongod --dbpath data/ --logpath log/mongodb.log --logappend --fork

启动成功会打印类似的信息

 
  1. forked process: 8407

  2. all output going to: /home/luonanqin/study/mongodb-linux-i686-2.2.3/bin/log/mongodb.log

  3. child process started successfully, parent exiting


b) 访问Mongodb

通过terminal访问Mongodb

./mongo --port 27017 --host 127.0.0.1

如果端口默认,则可以只指定host即可。连接后如下所示

 
  1. MongoDB shell version: 2.2.3

  2. connecting to: 127.0.0.1:27017/test

  3. >

接下来就可以增删查改了。

 

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是字符串,则需要用双引号引起来,整型长整型等则不需要引号

实例如下

 
  1. >use foo #新建数据库,如果只执行这条命令而不插入数据,则不会建立成功#

  2. >db #显示当前使用的数据#

  3.  
  4. #增加#

  5. >db.fooCollection.insert({name:"luonanqin"}); #fooCollection为collection的名字,insert表示插入操作#

  6.  
  7. #查询#

  8. >db.fooCollection.find(); #查询fooCollection中所有的数据#

  9. { "_id" : ObjectId("51bd9b84f5a86f460f74659a"), "name" : "luonanqin" } #只插入了一条数据#

  10.  
  11. #更新#

  12. >db.abc.update({"_id" : ObjectId("51bd9b84f5a86f460f74659a")},{$set: {name:"luonanqin2"}}); #更新name的值为luonanqin2#

  13.  
  14. #删除#

  15. >db.abc.remove({name:"luonanqin2"});

以上就是对Mongodb的最简单的操作,如果想了解更多用法,官网上说的很清楚,多看看会有不少收获哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值