MongoDB 简介|学习笔记

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 快速学习 MongoDB 简介

开发者学堂课程【快速掌握 MongoDB 数据库MongoDB简介】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/400/detail/5184


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 数据库与传统的关系型数据库不是互斥的关系,是互补的关系,两者一定是同时存在。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解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
相关文章
|
存储 NoSQL 安全
【MongoDB】MongoDB可查询加密简介
MongoDB 6.0引入了一个预览功能,它实现了一个近乎神奇的功能,即允许将加密数据用作搜索目标,而无需将密钥传输到数据库。
|
6月前
|
NoSQL Java 关系型数据库
非关系型数据库NoSQL数据层解决方案 之 Mongodb 简介 下载安装 springboot整合与读写操作
非关系型数据库NoSQL数据层解决方案 之 Mongodb 简介 下载安装 springboot整合与读写操作
72 0
|
7月前
|
存储 NoSQL 关系型数据库
MongoDB简介以及核心概念
MongoDB简介以及核心概念
63 1
|
7月前
|
存储 分布式计算 NoSQL
MongoDB的简介和安装(在服务器上)
MongoDB的简介和安装(在服务器上)
133 0
|
存储 JSON NoSQL
01 MongoDB - 简介
01 MongoDB - 简介
43 0
|
存储 JSON NoSQL
95分布式电商项目 - MongoDB 简介
95分布式电商项目 - MongoDB 简介
74 0
|
存储 JSON NoSQL
MongoDB从入门到实战之MongoDB简介
MongoDB从入门到实战之MongoDB简介
280 0
MongoDB从入门到实战之MongoDB简介
|
存储 JSON NoSQL
【BackEnd--Mongodb】学习笔记(完整详细版)
MongoDB是一种面向文档的非关系型数据库,所谓的面向文档是一种类似JSON的结构,因此可以简单理解MongoDB存储的是各种各样的JSONMongoDB可以快速开发web型应用,因为存储的是JSON格式,因此无需像关系型数据库那样需要建表,非常的的灵活。
266 0
|
NoSQL 关系型数据库 MySQL
|
存储 SQL JSON
MongoDB分布式存储数据库系列(一)------简介
MongoDB 是一个基于分布式文件存储的数据库。由 C++语言编写。在为 WEB 应用提供可扩展的高性能数据存储解决方案。
267 0
MongoDB分布式存储数据库系列(一)------简介