【MongoDB】MongoDB安装及CRUD操作

Welcome to NoSQL!
Welcome to MongoDB!  ”

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

——百度百科网.mongodb(分布式文档存储数据库)[EB/OL].http://baike.baidu.com/subview/3385614/9338179.htm

MongoDB是当下最流行的NoSQL产品。值得一看!

本文主要介绍MongDB在Windows和Linux 下面的安装和配置。

1、win下安装mongo
首先要获取mongo,官网网址:http://www.mongodb.org/  但是这边下载超级慢!我提供一个百度云下载链接:http://pan.baidu.com/s/1dD1rFA5

这是一个压缩包,下载下来解压,将解压以后的文件夹复制到某一个自己能记住的目录下面,我选择的是D盘,并且可以新建一个文件夹mongo。

打开cmd ,切换到你刚刚记住的那个目录下面,我应该是d:/mongo ,你dir一下会看到bin目录,这个是最重要的

现在在mongo文件夹下面新建一个文件夹db,作为存储数据的文件夹,再新建一个文件夹logs,打开logs里面新建一个文件mongo.log,这是mongo的日志文件

此时,你的mongo路径应该类似:d:/mongo,数据文件夹路径:d:/mongo/db,日志文件路径:d:/mongo/logs/mongo.log

现在,进入bin文件夹,运行mongod.exe ,同时配置dbpath和logpath,完整的命令是

mongod.exe --dbpath=d:/mongo/db --logpath=d:/mongo/logs/mongo.log

这样就可以启动mongo的服务了,你看到最后是监听了27017端口,然后屏幕就不动了,这就对啦!

启动服务以后,重新开启一个cmd,切换至bin目录下面,输入mongo.exe 就可以连入服务了,你连入成功应该看到

connecting to :test>;

这样的代码

这样就搭建好了!

2、Linux下安装mongo
我选择的环境是CentOS。

下载mongo,地址为: 官网网址:http://www.mongodb.org/ 我提供的百度云地址:http://pan.baidu.com/s/1c01tIuO

基本的方式也与其余Linux软件差不多的!先解压到确定的目录,我选的是/opt,重命名为mongo,新建db文件夹,新建logs文件夹,打开logs文件夹新建mongo.log文件,以上全部的操作命令为

tar -zxvf mongoXXX.tar
mv mongoXXX  mongo
mv mongo /opt
cd /opt
cd mongo
mkdir db
mkdir logs
cd logs
touch mongo.log 

新建好log文件以后,切换回到bin目录下面,这是要做的就是启动mongo服务,并且配置dbpath,logpath,和Win类似的,命令为

./mongod --dbpath=/opt/mongo/db --logpath=/opt/mongo/logs/mongo.log

开启服务以后,会看到已经监听了27017端口,并且屏幕不动,这就表明已经启动服务了。

我们需要将mongo的服务变成Linux的服务随机启动,要不就一直在命令行中出不来啦,用vi打开配置文件,用的命令为

vi /etc/rc.local 

然后在最后面加上一行代码:

/opt/mongo/bin/./mongod --dbpath=/opt/mongo/db --logpath=/opt/mongo/logs/mongo.log 

现在就可以打开命令行,切换到bin目录下面,执行./mongo 就会看到

connecting to :test >

这样就是连接好啦!

3、mongo的CURD操作

现在就来进行最简单的命令啦!

mongo存储不需要类似我们结构化数据中的表格那种类型的,最常见的是存储对象,是json结构

插入记录,命令

db.things.save(object)

举例:

me={name:"lkn",age:"22"}
db.things.save(me);

这样就把me这个对象存进去啦,这个对象有两个字段,插入后每个对象都有一个_id字段,这是自己添加的,是每一条记录唯一的区分

可以批量插入,用循环,

for(var i=0;i<10;i++)db.things.save({name:i,age:i})

这样就插入了10个对象,每一个对象的name和age分别是0到9

查找记录,命令

db.things.find()

当我们执行查找命令时,就可以将所有的数据无条件的查询出来

加上条件就应该用

db.things.find({字段:值})

多个字段用逗号,分开,例如

db.things.find({name:"lkn",age:"22"})

这样就查出来name是lkn,age是22的对象了

输入查询结果用printjson(),一般多个查询需要全部输出,就要用循环forEach,完整代码

db.things.find({name:"lkn"}).forEach(printjson);

这样就把所有的name是lkn的数据逐个输出了。

通过limit限制查询数目,命令为

db.things.find().limit(n)

n是你想获取的对象数目,比如3,你就可以值拿到3个数据

用findOne获取第一条数据,命令为

db.things.findOne()

findOne()里面可以有条件,和find功能几乎一样,但是只能返回一条数据,或者null,表示没有数据

修改记录:命令

db.things.update({字段:旧值},{$set:{字段:新值,新字段:新值}})

修改记录主要用的是update和$set,同时因为没有表结构,所以不仅可以修改旧的值,也可以新添加字段,实际代码

db.things.update({name:"lkn"},{$set:{name:"xiaochun",qq:"11111222"}});

这是将name是lkn的对象,改了name为xiaochun,同时新增加了一个字段qq,值为1111222
当然你也可以只是修改,增加不是必须的,我就是表明可以同时增加,因为这就是NoSQL的魅力!

删除记录:命令

db.things.remove({字段:值})

很简单,根据值删除内容,实际代码

db.things.remove({name:"xiaochun"});

这样就把name 是xiaochun的记录删除了。

这样,mongo的CURD就入门啦!后面会继续学习总结mongo的更多更强大的功能。

刘凯宁
20150113

Share

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>