没有合适的资源?快使用搜索试试~ 我知道了~
介绍MongoDB的应用
资源推荐
资源详情
资源评论
MongoDB
Liubo5
MongoDB 1
1、MongoDB 简介 2
1.1 NoSQL 2
1.2 关系型数据库遵循ACID规则 3
2、MongoDB 概念解析 4
2.1 MongoDB 数据类型 7
2.2 安装 MongoDB 8
3、MongoDB的⽤法 11
3.1 MongoDB 创建数据库: 11
3.2 MongoDB 删除数据库: 11
3.3 MongoDB 插⼊⽂档: 12
3.4 MongoDB 删除⽂档: 13
3.5 MongoDB 更新⽂档: 13
3.6 MongoDB 查询⽂档: 15
3.7 MongoDB 条件操作符 16
3.8 MongoDB $type操作符 17
3.9 MongoDB Limit与Skip⽅法 18
3.10 MongoDB 排序 19
4、MongoDB索引 19
5、MongoDB聚合 21
6、MongoDB 复制 23
7、MongoDB分⽚ 26
7.1、MongoDB备份(mongodump)与恢复(mongorestore) 28
7.2、MongoDB监控 28
8、Reference 29
1、MongoDB 简介
• MongoDB是⼀个基于分布式⽂件存储的数据库。由C++语⾔编写。旨在为WEB应⽤提供可扩展
的⾼性能数据存储解决⽅案。
• MongoDB是⼀个介于关系数据库和⾮关系数据库(nosql)之间的产品,是⾮关系数据库当中功能最
丰富,最像关系数据库的。
1.1 NoSQL
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。NoSQL最普遍的解释是"⾮关联型的",
强调Key-Value Stores和⽂档数据库的优点,⽽不是单纯的反对RDBMS。
CAP定理(CAP theorem)
在计算机科学中, CAP定理(CAP theorem), 又被称作 布鲁尔定理(Brewer's theorem), 它指出对于
⼀个分布式计算系统来说,不可能同时满⾜以下三点:
•
⼀致性(Consistency) (所有节点在同⼀时间具有相同的数据)
• 可⽤性(Availability) (保证每个请求不管成功或者失败都有响应)
•
分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)
CAP理论的核⼼是:⼀个分布式系统不可能同时很好的满⾜⼀致性,可⽤性和分区容错性这三个需
求,最多只能同时较好的满⾜两个。
因此,根据 CAP 原理将 NoSQL 数据库分成了满⾜ CA 原则、满⾜ CP 原则和满⾜ AP 原则三 ⼤类:
•
CA - 单点集群,满⾜⼀致性,可⽤性的系统,通常在可扩展性上不太强⼤。(例如:单个
redis)
•
CP - 满⾜⼀致性,分区容忍性的系统,通常性能不是特别⾼。(例如主从redis)
• AP - 满⾜可⽤性,分区容忍性的系统,通常可能对⼀致性要求低⼀些。(例如redis集群)
(图1.1)
NoSQL的优点/缺点
优点:
• - ⾼可扩展性
• - 分布式计算
•
- 低成本
• - 架构的灵活性,半结构化数据
•
- 没有复杂的关系
缺点:
•
- 没有标准化
• - 有限的查询功能(到⽬前为⽌)
•
- 最终⼀致是不直观的程序
1.2 关系型数据库遵循ACID规则
事务在英⽂中是transaction,和现实世界中的交易很类似,它有如下四个特性:
1、A (Atomicity) 原⼦性
原⼦性很容易理解,也就是说事务⾥的所有操作要么全部做完,要么都不做,事务成功的条件是事
务⾥的所有操作都成功,只要有⼀个操作失败,整个事务就失败,需要回滚。
⽐如银⾏转账,从A账户转100元⾄B账户,分为两个步骤:1)从A账户取100元;2)存⼊100元⾄B
账户。这两步要么⼀起完成,要么⼀起不完成,如果只完成第⼀步,第⼆步失败,钱会莫名其妙少
了100元。
2、C (Consistency) ⼀致性
⼀致性也⽐较容易理解,也就是说数据库要⼀直处于⼀致的状态,事务的运⾏不会改变数据库原本
的⼀致性约束。
例如现有完整性约束a+b=10,如果⼀个事务改变了a,那么必须得改变b,使得事务结束后依然满⾜
a+b=10,否则事务失败。
3、I (Isolation) 独⽴性
所谓的独⽴性是指并发的事务之间不会互相影响,如果⼀个事务要访问的数据正在被另外⼀个事务
修改,只要另外⼀个事务未提交,它所访问的数据就不受未提交事务的影响。
⽐如现有有个交易是从A账户转100元⾄B账户,在这个交易还未完成的情况下,如果此时B查询⾃⼰
的账户,是看不到新增加的100元的。
4、D (Durability) 持久性
持久性是指⼀旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。
2、MongoDB 概念解析
下表将更容易理解Mongo中的⼀些概念:
!
(图2.1)
下表将帮助您更容易理解Mongo中的⼀些概念:
!
(图2.2)
数据库:
⼀个mongodb中可以建⽴多个数据库。
MongoDB的默认数据库为"db",该数据库存储在data⽬录中。
MongoDB的单个实例可以容纳多个独⽴的数据库,每⼀个都有⾃⼰的集合和权限,不同的数据库也
放置在不同的⽂件中。
"show dbs" 命令可以显⽰所有数据的列表。
$ ./mongo
MongoDB shell version: 3.0.6 connecting to: test
> show dbs
local 0.078GB
test 0.078GB
>
执⾏ "db" 命令可以显⽰当前数据库对象或集合。
$ ./mongo
MongoDB shell version: 3.0.6 connecting to: test
> db
test
>
运⾏"use"命令,可以连接到⼀个指定的数据库。
> use local
switched to db local
> db
local
>
以上实例命令中,"local" 是你要链接的数据库。
在下⼀个章节我们将详细讲解MongoDB中命令的使⽤。
数据库也通过名字来标识。数据库名可以是满⾜以下条件的任意UTF-8字符串。
•
不能是空字符串("")。
• 不得含有' '(空格)、.、$、/、\和\0 (空宇符)。
• 应全部⼩写。
• 最多64字节。
有⼀些数据库名是保留的,可以直接访问这些有特殊作⽤的数据库。
• admin: 从权限的⾓度来看,这是"root"数据库。要是将⼀个⽤户添加到这个数据库,这个⽤
户⾃动继承所有数据库的权限。⼀些特定的服务器端命令也只能从这个数据库运⾏,⽐如列出
所有的数据库或者关闭服务器。
• local: 这个数据永远不会被复制,可以⽤来存储限于本地单台服务器的任意集合
•
config: 当Mongo⽤于分⽚设置时,config数据库在内部使⽤,⽤于保存分⽚的相关信息。
⽂档
⽂档是⼀个键值(key-value)对(即BSON)。MongoDB 的⽂档不需要设置相同的字段,并且相同的字段
不需要相同的数据类型,这与关系型数据库有很⼤的区别,也是 MongoDB ⾮常突出的特点。
⼀个简单的⽂档例⼦如下:
{"name":"cloud"}
下表列出了 RDBMS 与 MongoDB 对应的术语:
RDBMS
MongoDB
数据库
数据库
表格
集合
⾏
⽂档
列
字段
表联合
嵌⼊⽂档
主键
主键 (MongoDB 提供了 key 为 _id )
数据库服务和客户端
剩余28页未读,继续阅读
资源评论
大山峰石
- 粉丝: 7
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功