文档数据库介于关系数据库和NoSql之间;
是最像关系数据库的一款产品,也是当前最热门的一款产品。
1.MongoDB简介:
1)![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609134939639-641737848.png)
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609134939639-641737848.png)
2)文档类型BSON(Binary JSON),结构类似JSON
3)特点:
操作比较简单容易
可以针对任何属性的索引实现更快的排序
水平可扩展性
丰富的查询表达式,
替换已完成文档指定的字段
批量处理,聚合
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609135103531-1023897657.png)
操作比较简单容易
可以针对任何属性的索引实现更快的排序
水平可扩展性
丰富的查询表达式,
替换已完成文档指定的字段
批量处理,聚合
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609135329252-1211276438.png)
4)术语:
每一行记录对应一个文档
文档集合对应就是表
文档集合对应就是表
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609135516885-1455732974.png)
(实例:两行记录对应两个文档)
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609135601861-2028974371.png)
5)
关系数据库需要多表连接查询;
文档数据库散布在多个表的数据用一个文档即可锁定,并发性更高;
文档数据库散布在多个表的数据用一个文档即可锁定,并发性更高;
关系数据库设计实例:
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609135908390-1618142344.png)
6)数据库:
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609140118976-1537859661.png)
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609140213471-307311856.png)
例如:key是"site",value是“dblab.xmu.edu.cn"
8)RDMS与MongoDB对应的术语
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609140413309-1454228236.png)
服务端与客户端:![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609140445451-2144417574.png)
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609140445451-2144417574.png)
9)集合:
(文档组)关系数据库的三条记录变成三个文档,形成文档组
(文档组)关系数据库的三条记录变成三个文档,形成文档组
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609140750999-27856121.png)
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609140842292-1311907484.png)
创建数据库:不用create,直接use,没有的话会自动创建
想看创建好的数据库:showdbs
创建集合:用shell命令时不用单独创建集合;但编程时需要单独创建集合
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609141151951-2034887126.png)
1)环境配置
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609141245889-1690260941.png)
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609141245889-1690260941.png)
2)连接数据库:MongoDB默认端口号为 27017
3)创建集合(用shell命令时不需要创建集合)
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609141328283-1908469188.png)
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609141641238-655279284.png)
![](https://img2018.cnblogs.com/blog/1491599/201906/1491599-20190609142652757-1352296585.png)