一、介绍
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
二、安装
windows下安装(略) 自行安装!
linux下安装 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
-
解压文件
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz
-
进入解压目录
cd mongodb-linux-x86_64-3.0.6
-
将文件移动至
/usr/local/mongodb
(个人习惯问题) -
验证安装是否成功
cd bin
执行命令./mongod --help
如果显示如下则说明安装成功
三、使用
1.启动服务
作为服务进程启动 [root@fdsfdeggde8757 mongodb]# ./bin/mongod --dbpath ./data --logpath ./log.log --fork
2.客户端使用
-
进入安装目录
cd /usr/local/mongodb/bin
进入目录后启动mongo客户端./mongo
进入如下界面:
-
创建数据库
语法: use 数据库名称
注意:如果该数据库不存在,则创建,如果该数据库存在,则是切换,如果创建了数据库,没有任何的操作,则会自动删除该数据库。
-
查看数据库
show dbs
-
创建集合
注意:mongodb里面的集合是隐式创建,就是无需创建,直接使用。
语法:db.集合名.insert({})该语法意思是,向集合里面,添加文档。
-
查看集合
show tables
-
查询文档
语法:
db.集合名.find() 查询所有
db.集合名.findOne() 查询第一个文档
-
删除集合
语法:db.集合名.drop();
-
删除数据库
语法:
use 数据库
db.dropDatabase()
-
增删改查操作
添加操作
语法: db.集合名.insert({k1:’v1’,k2:’v2’……})
删除操作
语法:db.集合名.remove({条件})(不写条件删除所有的文档)
例1:删除 user 集合中年龄等于14的文档
db.user.remove({age:14})
修改操作
方法一,直接修改
语法:db.集合名.update({条件},{新的文档},是否新增,是否修改多条)
语法: db.集合.update(条件,新文档, 是否新增, 是否修改多条)
是否新增:如果值是1(true)则没有满足条件的则添加。
是否修改多条:若值是1(true),如果满足条件的有多个文档则都要修改,
案例1:在user集合里面,要修改age=199的文档name为“大牛”
db.user.update({age:19},{name:“大牛”})
注意;以上修改方式,会丢失其他的键值,因此不推荐使用。
方法二,使用修改器
案例2:要修改age=44的文档名称为“王小宝”,并且其他键值不能丢失
db.user.update({age:44},{’$set’:{name:“王小宝”}})
使用修改器
$inc : 加一个数字
$set : 修改某一个字段,如果该字段不存在就增这个字段
语法:db.集合名.update({条件},{修改器名称:{修改的键:修改的新值}})
案例3:要修改age=44的文档的年龄添加5岁
语法:db.集合名.update({条件},{修改器名称:{修改的键:修改的新值}})
db.user.update({age:44},{’$inc’:{age:5}})
查询操作
语法:db.集合名.find({条件})
案例1:取出php集合里面第一个文档
db.user.findOne();
案例2:取出user集合里面age=2的文档
db.user.find({age:2})
案例3:取出user集合里面age大于2的文档
db.user.find({age:{‘$gt’:2}})
案例4:取出user集合里面的文档,只显示name键
db.user.find({},{name:1})//1表示只显示name键值
注意:db.user.find({},{age:0})//0表示除了age键值,其他的都显示。
案例5:根据年龄的(降序|升序)来显示文档
db.集合名.find().sort({age:1})根据年龄升序
db.集合名.find().sort({age:-1})根据年龄降序
案例6:显示user集合中前3个文档。
db.user.find().limit(3)
案例7:显示user集合中第3个文档到第5个文档。
db.user.find().skip(2).limit(5) 相当于 mysql里面的 limit offset number
案例8:统计user集合中文档的个数
db.集合名.count():返回集合中有多少个文档。
结束