学习中心> 快速掌握 MongoDB 数据库> 正文

快速掌握 MongoDB 数据库

22课时 |
7672人已学 |
免费
课程介绍

本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。

通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。

 

相关的阿里云产品:云数据库 MongoDB版

云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。

云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。

产品详情: https://www.aliyun.com/product/mongodb

MongoDB简介

内容介绍

一、MongoDB简介(了解)

二、为什么要两个数据库结合使用?

 

一、MongoDB简介(了解)

MongoDB数据库是一种NOSQL 数据库,NOSQL 数据库不是这几年才有的,从数据库的初期发展就已经存在NOSQL 数据库。数据库之中支持的 SQL 语句是由 IBM 开发出来的,并且最早就应用在Oracle 数据库,但 SQL 语句的使用并不麻烦,就是几个简单的单词:SELECT、FROM、WHERE、DROUP BY、HAVING、ORDER BY(几个有限的语句组成了现在的SQL)。但是在这个时候有人开始反感于编写SQL 操作。实际上在 SQL 这个问题反感的典型代表包括微软最早的某产品,所以它里面要增加就使用insert 函数,修改就使用update 函数。于是有人就开始提出一个理论——不要去使用SQL ,所以最早的NOSQL 概念产生了。但是后来的发展产生了一点变化,在90年代到2010年之间,世界上最流行的数据库依然是关系型数据库,并且围绕着关系型数据库开发出大量的程序应用,比如玩的网络游戏、使用的电话移动信息、所有的个人信息化操作都在关系型数据库里保存着。但是后来又随着移动技术的发展,关键是移动技术的发展还伴随着另外的技术(云技术,大数据)在这样的环境下发展,传统的关系型数据库的最大的问题就是数据存储空间有限,所以 Oracle 里面提供了操作,能够实现跨数据的数据共享,但是配置极其复杂,如果要想用Oracle 来实现一个数据库局限操作,实践起来是相当复杂。随着发展,很多公司并不愿意使用大型的厂商数据库--Oracle、DB2,因为都已经习惯于使用于MYSQL 数据库。MYSQL数据库的发展特别好,然后发现在大数据、云计算的环境下,数据存储受到了很大的挑战,后来就开始重新进行了NOSQL 数据库的开发,但是经过长期的开发发现NOSQL 数据库依然不能离开传统的关系型数据库(NOSQL、Not Only  SQL),不能仅仅是传统的SQL 数据库,应该是两个数据库结合使用。

 

 

二、为什么要两个数据库结合使用?

1、实际上在现实的开发之中一直存在一个神奇的问题:

(1)、数据表==>JDBC读取==>POJO(VO、PO)==>控制层转化为JSON数据==>客户端

这样的转换实在是太麻烦了,最好的方法就是直接有一个数据库里存放有要显示的json数据库,那么就省略了所有需要进行转换的过程。

(2) 、每一个程序确定程序的好坏是最基本的标准是时间复杂度和空间的复杂度,很明显这个转换会造成时间的加长,而不是空间的加大,因为索取的数据是有限的。取得数据是有分页操作,一定不可能站的地方特别大,但一定存在操作时间的加长,他的时间在资源里零点几秒也是时间,能用0.1的时间而用0.5秒就是浪费资源。所以在这样的环境下,发现的数据库之中应该存有副本,所以在一定的实际开发之中,除了关系型数据库之外还要提供一个 NOSQL 数据库负责数据的读取,因为直接保存的就是 json(前提: mongDB 中的数据是排列好的组合数据)

(3)、例如:

要求显示出每个雇员的编号、姓名、职位、部门名称、部门位置、工资等级。如果想拿它做个列表就需要三张表关联,就要求五个量的显示,那么传统的关系型数据库中需要存放大量的数据。

(4) 、传统的关系型数据库之中一定要存放大量的冗余数据,不合理。而有了NOSQL 数据库之中,可以直接在业务层里面将数据交给NOSQL 数据库保存,按照指定的结构进行存储。记住结构存储是人为定义的结构,结构是不能被改变、修改,大概解释是每行可以不一样,但要尽量保持一样。

2、在MongoDB 数据库之中与Oracle e数据库有如下的概念对应:

No.

关系型数据库

NOSQL 数据库

1

数据库

数据库(类似于MySQL )

2

集合

3

文档

4

成员

5

主键

Object ID(自动维护)

(1) 、在整个行业之中,MongoDB数据库是发展最好的一个NOSQL 数据库,因为它与node.js 捆绑在一起了,如果要从事node.js的开发,那么一定要使用MongoDB,而node.js 在国内最好的应用--taobao。实际在整个行业中所有的后台业务中心用Java搭建是最好用、最安全、最保守的。这些是因为前面node.js一个最大的特点是基于JavaScript操作,相当于把JavaScript放到了服务器端,不再是简单的客户端。

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

(3)、模式自由:传统数据库是有模式的,一般情况下用户名和模式名称现在是分不开、一样的,所以往往把用户名理解成模式名,但实际上是两个概念。

(4)、短暂数据保留:比如最常见的功能:给手机注册发了验证码。该验证码90秒内能使用,但过了可能会使用,因为时间可能不准,可以作为临时的数据保留。

(5)、BSON 应用:是一种计算机数据交换格式,主要被用作MongoDB数据库中的数据存储和网络传输格式。

(6)、MongoDB支持各种主流语言,在 prp 编程世界里很大一部分用户是使用MongoDB数据库去开发,MongoDB数据库与传统的关系型数据库不是互斥的关系,是互补的关系,两者一定是同时存在。

我的学习进度
请登录后查看您的学习进度!
立即登录
本课程相关云产品