**MongoDB **简介
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。最像关系型数据库的。
MongoDB 优点
高性能、易部署、易使用,存储数据非常方便
· 面向集合存储,易存储对象类型的数据。
· 模式自由。
· 支持动态查询。
· 支持完全索引,包含内部对象。
· 支持查询。
· 支持复制和故障恢复。
· 使用高效的二进制数据存储,包括大型对象(如视频等)。
· 动处理碎片,以支持云计算层次的扩展性
· 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
文件存储格式为BSON(一种JSON的扩展)
BSON是一种类似**json的二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和**数组对象
Ø 数据库功能是用来存储数据的。
Ø 数据库分为关系系数据库和非关系型数据库(nosql)
Ø 关系型数据库是由表和表之间的关系组成的,nosql是由集合组成的,集合下面是很多的文档。
Ø 非关系型数据库文件存储格式为BSON(一种JSON的扩展)。
MongoDB配置
在Mongodb官网下载最新版本的:https://cloud.mongodb.com/
例如安装在 d盘
D:\Program Files (x86)\MongoDB\Server\3.2\bin
所以在bin文件夹下找到mongod.exe命令,然后通过管理员执行
执行这些命令,需要以管理员身份运行cmd
mongod --dbpath x路径x
当然路径不要包含特殊的字符串,比如Program Files (x86)也不行
mongod --dbpath D:\mongodb\data\db
启动MongoDB
**以管理员身份运行cmd.exe,**进入dos命令界面,执行下列命令
> mongod --storageEngine mmapv1 --dbpath “d:\mongodb\db” --logpath “d:\mongodb\log\MongoDB.log”
测试连接
原来的cmd窗口不关闭,以管理员身份再****开一个cmd窗口,输入mongo或者mongo.exe,出现如下信息说明测试通过,此时我们已经进入了test这个数据库。
[外链图片转存失败(img-WYfDLyjk-1563791375916)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7808\wps1.jpg)]
启动mongodb服务
> NET START MongoDB
[外链图片转存失败(img-lqRDw6rd-1563791375918)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7808\wps2.png)]
打开任务管理器,可以看到进程已经启动。
再次测试连接
> mongo
关闭mongodb服务
ctrl+c
关闭服务:net stop MongoDB
1. Mongo DB基础使用
常用的命令
>Help 查看帮助
· 显示数据库列表 > show dbs
· 创建数据库 > use dbname
· 如果数据库不存在,则创建数据库dbname,否则切换到指定数据库dbname。创建的数据库并不在数据库的列表中,要显示它,我们需要向数据库dbname插入一些数据
· MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。
显示数据库中的集合 show collections
增加数据
· db.web.save({“name”:“老李”}) 创建了名为web的集合,并新增了一条{“name”:“老李”} 的数据
· db.web.insert({“name”:“ghost”, “age”:10}) 在web集合中插入一条新数据,如果没有web这个集合,mongodb会自动创建
· save()和insert()也存在着些许区别:若新增的数据主键已经存在,insert()会不做操作并提示错误,而save() 则更改原来的内容为新内容。
删除数据
· db.users.remove({}) 删除users集合下所有数据
· db.users.remove({“name”: “lecaf”}) 删除users集合下name=”lecaf”的数据
· db.users.drop()或db.runCommand({“drop”:“users”}) 删除集合users
· db.runCommand({“dropDatabase”: 1}) 删除当前数据库,注意 此处的1没加双引号。
查找数据
· db.users.find() 查找users集合中所有数据
· db.users.findOne() 查找users集合中的第一条数据
· db.users.find().pretty() 格式化查询到的数据
修改数据
· db.web.update({“name”:“a1”}, {$set: {sex:”women”}},true,true) 修改name=a1的数据为sex=1,第一个参数是查找条件,第二个参数是修改内容,主键不能修改,第三个参数表示匹配所有符合条件的数据
MongoDB高级命令
db.collection.find({ “key” : value }) 查找key=value的数据.
db.collection.find({ “key” : { $gt: value } }) key > value
db.collection.find({ “key” : { $lt: value } }) key < value
db.collection.find({ “key” : { $gte: value } }) key >= value
db.collection.find({ “key” : { $lte: value } }) key <= value
db.collection.find({ “key” : { $gt: value1 , $lt: value2 } }) value1 < key <value2
db.collection.find({ “key” : { $ne: value } }) key <> value 条件为 country不等于value
db.collection.find({ “key” : { $mod : [ 10 , 1 ] } }) 取模运算,条件相当于key % 10 == 1 即key除以10余数为1的
db.collection.find({ “key” : { $in: [ 1, 2, 3 ] } }) 属于,条件相当于key等于[ 1, 2, 3 ]中任何一个.
db.collection.find({ “key” : { $nin: [ 1, 2, 3 ] } }) 不属于,条件相当于key的值不属于[ 1, 2, 3 ]中任何一个。
db.collection.find({ “key” : { $size: 1 } }) $size 数量、尺寸,条件相当于key对应的值的数量是1(值必须是数组)
db.collection.find({ “key” : { $exists : true|false } })
$exists 字段存在,true返回存在字段key的数据,false返回不存在字段key的数据
db.collection.find({ $or : [{a : 1}, {b : 2} ] })
符合两个条件中任意一个的数据。$or语法表示或的意思。 (注意:MongoDB 1.5.3后版本可用),符合条件a=1的或者符合条件b=2的数据都会查询出来。
db.singer.insert({“name”:“test2”,score:{“yy”:80,“sx”:79,“wy”:95}}) 插入一条测试数据
db.collection.find().sort({ “key1” : -1 ,“key2” : 1 }) 这里的1代表升序,-1代表降序
其他
db.collection.find().limit(5) 控制返回结果数量,如果参数是0,则没有约束,limit()将不起作用
db.collection.find().skip(5) 控制返回结果跳过多少数量,如果参数是0,则当作没有约束,skip()将不起作用,或者说跳过了0条
db.collection.find().skip(5).limit(5) 可用来做分页,跳过5条数据再取5条数据
db.collection.find().count() count()返回结果集的条数
db.collection.find().skip(5).limit(5).count(true) 在加入skip()和limit()这两个操作时,要获得实际返回的结果数,需要一个参数true,否则返回的是符合查询条件的结果总数
模糊查询:
db.collection.find({“name”:/ab/})
本文介绍了MongoDB的基础知识,包括其特点、安装步骤及基本命令的使用方法。MongoDB是一个高性能、易部署且易使用的分布式文件存储数据库,支持多种编程语言。
1602

被折叠的 条评论
为什么被折叠?



