## **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 來存儲數據。
集合就相當于“表”,文檔就相當于“行”。

## **5、NoSql 種類**

## **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 數據庫的導出導入