## **1、数据库和文件的主要区别**
1、 数据库有数据库表、行和列的概念,让我们存储操作数据更方便
2、 数据库提供了非常方便的接口,可以让 nodejs、php java .net 很方便的实现增加修改删 除功能。
## **2、NoSql 介绍**
#### 2.1 NoSQL 介绍
由于互联网的迅速发展,云计算与 Web2.0。这样大量的交互给数据库提出了更高的性能要 求,传统的数据库(本文泛指 SQL 数据库),即关系数据库虽然具备良好的事物管理,但在处理 大量数据的应用时很难在性能上满足设计要求。NoSQL 就是主要为了解决当下大量高并发高要 求的数据库应用需求,关系数据库具有严格的参照性,一致性,可用性,原子性,隔离性等特点,
因此会产生一些例如表连接等操作,这样会大大降低系统的性能。而在当前很多应用场景下对性 能的要求远远强于传统数据库关注的点,NoSQL 就是为了解决大规模数据与多样数据种类等问 题,尤其是其中大数据的相关问题。 。
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是 SQL”,它指的是非关系型的数据库,是以 key-value 形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循 SQL 标准、 ACID 属性、表结构等等。NoSQL 最早被提出是在 20世纪80 年代,在当时更多是强调的是与关系 数据库区别对待,最近这些年被提及的更多是强调协助解决大数据等相关问题。NoSQL 在大数 据时代有自己的意义。
#### 2.2 NoSQL 应用情况介绍
国内的互联网蓬勃发展,不仅涌现出 BAT(百度,阿里巴巴,腾讯)之类的巨头,也带动了整个互联 网行业的发展,大量的创业型公司如春笋般的涌出,在国家层面也提出了“互联网+”和“万众创业”的口 号。更多传统的行业也开始拥抱互联网。但是无论是做所谓的生态平台还是传统业务的转型,涉及到的业 务是多种多样的。这个时候企业架构师对于应用系统的核心——数据库管理 不仅有传统的 SQL 选项也有了 NoSQL 这种适合特定场景需求的选项。
**NoSQL 数据库在以下的这几种情况下比较适用:**
1. 数据模型比较简单;
2. 需要灵活性更强的 IT系统;
3. 对数据库性能要求较高;
4. 不需要高度的数据一致性;
5. 对于给定 key,比较容易映射复杂值的环境。
#### 2.3 NoSQL 发展现状
**国外:** Google 的 BigTable 和 Amazon 的 Dynamo 使用的就是NoSQL 型数据库。
**国内:**百度、阿里、腾讯、新浪微博、视觉中国、优酷运营数据分析、飞信空间、豆瓣社区等..
## **3、 什么时候建议使用 NoSql**
1. 对数据库高并发读写的需求
2. 对海量数据的高效率存储和访问的需求
3. 对数据库的高可扩展性和高可用性的需求
## **4、 NoSql 和传统数据库简单对比。**
非结构型数据库。没有行、列的概念。用 JSON 来存储数据。
集合就相当于“表”,文档就相当于“行”。
![](https://box.kancloud.cn/003e137e4426da89998138c9c95a1fe8_575x364.png)
## **5、NoSql 种类**
![](https://box.kancloud.cn/2d6f9eedfe34b0a191617e2c7c46fa80_1168x717.png)
## **6、MongoDb 介绍**
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像 关系数据库的。他支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类 型。Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以 实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、 易使用,存储数据非常方便。
## **7、MongoDb 安装**
[linux安装mongoDB及远程连接]([https://juejin.im/post/5cb6cc72518825327854752e](https://juejin.im/post/5cb6cc72518825327854752e))
- 前言
- 一、MongoDb 数据库介绍、安装、使用
- 二、MongoDB 数据库创建删除、表(集合) 创建删除、数据增删改查
- 三、MongoDB 索引 和 explain 的使用
- 四、Nodejs 操作 MongoDb 数据库
- 五、关系型数据库表(集合)与表(集合)之 间的几种关系
- 六、MongoDB 的高级查询 aggregate 聚合管道
- 七、mongoose 入门以及 mongoose 实现数据 的增、删、改、查
- 八、Mongoose 预定义模式修饰符 Getters 与 Setters 自定义修饰符
- 九、Mongoose 索引、Mongoose 内置 CURD 方 法、扩展 Mongoose Model 的静态方法和 实例方法
- 十、Mongoose 数据校验
- 十一、Mongoose 中使用 aggregate 聚合管道
- 十二、Mongoose 中使用 populate 实现关联查询
- 十三、MongoDb 数据库的导出导入