天天看点

学习MongoDB笔记(一)——简介

首先我们在学习MongoDB之前要了解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数据库有如下的概念对应:

学习MongoDB笔记(一)——简介

在整个行业之中,MongoDB数据库是发展最好的一个NoSQL数据库,因为它与Node.JS捆绑在一起了,也就是如果你要从事Node.JS的开发,那么一定要使用MongoDB,而Node.JS(基于JavaScript)在国内最成功的应用—— taobao。

MongoDB之所以能够更好的发展也取决于:面向集合的存储过程、模式自由(无模式)、方便的进行数据的存储扩充、支持索引、支持短暂数据保留、具备完整的数据库状态监控、基于BSON应用。