【网易云】李兴华网易云课堂MongoDB学习笔记:
http://yuedu.163.com/news_reader/#/~/source?id=d0b66e2ed0f84f8f8f4ea1a357964f36_1&cid=2cc98f9ffa0e4650bf9d0dc166f1a0e4_1
【网易云】『李兴华』MongoDB数据库:
https://study.163.com/course/courseMain.htm?courseId=1211033

1、MongoDB简介(了解)
MongoDB数据库是一种NOSQL数据库,NOSQL数据库不是这几年才有的,从数据库的初期发展就已经存在有了NOSQL数据库。数据库之中支持的SQL语句是由IBM开发出来的,并且最早就应用在了Oracle数据库,但是SQL语句的使用并不麻烦,就是几个简单的单词:SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。但是在这个时候有人开始反感于编写SQL操作。于是有一些人就开始提出一个理论——不要去使用SQL,于是最早的NoSQL概念产生了。可是后来的发展产生了一点变化,在90年代到2010年之间,世界上最流行的数据库依然是关系型数据库,并且围绕着关系型数据库开发出了大量的程序应用。后来又随着移动技术(云计算、大数据)的发展,很多公司并不愿意去使用大型的厂商数据库—— Oracle、DB2,因为这些人已经习惯于使用MySQL数据库了。这些人发现在大数据以及云计算的环境下,数据存储受到了很大的挑战,那么后来就开始重新进行了NoSQL数据库的开发,但是经过长期的开发发现,NoSQL数据库依然不可能离开传统的关系型数据(NoSQL、Not OnlySQL)。
实际上在现实的开发之中一直存在一种神奇的问题:
•数据表→ JDBC读取→ POJO(VO、PO)→控制层转化为JSON数据→客户端。
可是这样的转换实在是太麻烦了,那么最好的做法是,直接有一个数据库就存放有要显示的JSON数据该有多好,那么就省略所有需要进行转换的过程。所以在实际的开发之中,往往除了关系型数据库之外还要提供有一个NoSQL数据库,其中NoSQL数据库负责数据的读取,因为直接保存的就是JSON(前提:MongoDB中的数据是排列好的组合数据)。
例如:现在要求显示出每个雇员的编号、姓名、职位、部门名称、部门位置、工资等级。传统的关系型数据库之中一定要存放大量的冗余数据,不合理。而有了NoSQL数据库之中,可以直接在业务层里面将数据交给NoSQL数据库保存,按照指定的结构进行存储。
在MongoDB数据库之中与Oracle数据库有如下的概念对应:
1.png
在整个行业之中,MongoDB数据库是发展最好的一个NoSQL数据库,因为它与Node.JS捆绑在一起了,也就是如果你要从事Node.JS的开发,那么一定要使用MongoDB,而Node.JS(基于JavaScript)在国内最成功的应用—— taobao。
MongoDB之所以能够更好的发展也取决于:面向集合的存储过程、模式自由(无模式)、方便的进行数据的存储扩充、支持索引、支持短暂数据保留、具备完整的数据库状态监控、基于BSON应用。

MongoDB数据库【李兴华老师教学学习笔记】.docx