01-MongoDB-簡介與安裝

一. 簡介

1.什么是MongoDB?

MongoDB和MySQL一樣都是數(shù)據(jù)庫, 都是存儲數(shù)據(jù)的倉庫,

不同的是MySQL是關系型數(shù)據(jù)庫, 而MongoDB是非關系型數(shù)據(jù)庫

MongoDB是NoSQL類型數(shù)據(jù)庫, NoSQL(NoSQL = Not Only SQL ),意即"不僅僅是SQL"。

MongoDB 將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對組成。

MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。

2.什么是非關系型數(shù)據(jù)庫?

在'關系型數(shù)據(jù)庫'中, 數(shù)據(jù)都是存儲在表中的, 對存儲的內(nèi)容有嚴格的要求

  • 因為在創(chuàng)建表的時候我們就已經(jīng)規(guī)定了表中有多少個字段

  • 已經(jīng)規(guī)定了每個字段將來要存儲什么類型數(shù)據(jù),

  • 已經(jīng)規(guī)定了每個字段將來是否可以為空,是否必須唯一等等

在'非關系型數(shù)據(jù)庫'中, 沒有表概念, 所以存儲數(shù)據(jù)更加靈活

  • 因為不需要創(chuàng)建表,所以也沒有規(guī)定有哪些字段,

  • 也沒有規(guī)定每個字段數(shù)據(jù)類型,

  • 也沒有規(guī)定每個字段將來是否可以為空,是否必須唯一等等

關系型數(shù)據(jù)庫'由于操作的都是結(jié)構(gòu)化的數(shù)據(jù), 所以我們需要使用結(jié)構(gòu)化語言SQL來操作

  • '非關系型數(shù)據(jù)庫'由于數(shù)據(jù)沒有嚴格的結(jié)構(gòu)要求, 所以無需使用SQL來操作

3.什么是MongoDB?

存儲文檔(BSON)的非關系型數(shù)據(jù)庫

例如在MySQL中:

|--------------------------------------------------------|

| name(varchar(255) not null) | age(int unique) |

|--------------------------------------------------------|

我們可以把 'zs', 33 保存到表中

但是我們不能將 33, 'zs' 保存到表中

但我們不能能將 null, 33 保存到表中

但是我們不能將 'zs', 33, '男' 保存到表中

但是我們不能再次將 'zs', 33 保存到表中

例如在MongoDB中:

我們可以把 {name: 'zs', age: 33}; 保存到集合中

我們也可以把 {name: 33, age: 'zs'}; 保存到集合中

我們也可以把 {name: null, age: 33}; 保存到集合中

我們也可以把 {name: 'zs', age: 33, gender:'男'}; 保存到集合中

但是我們可以再次將 {name: 'zs', age: 33}; 保存到集合中

  • '非關系型數(shù)據(jù)庫'可以看做是'關系型數(shù)據(jù)庫'的功能閹割版本,

    通過減少用不到或很少用的功能,從而提升數(shù)據(jù)庫的性能

4.MongoDB是如何存儲文檔的?

MySQL中所有的數(shù)據(jù)都是存儲在表中的, 而MongoDB中所有的數(shù)據(jù)都是存儲在集合中的

5.企業(yè)開發(fā)如何選擇?

  • 關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫之間并不是替代關系, 而是互補關系

所以在企業(yè)開發(fā)中大部分情況是結(jié)合在一起使用.

  • 對于數(shù)據(jù)模型比較簡單、數(shù)據(jù)性能要求較高、數(shù)據(jù)靈活性較強的數(shù)據(jù), 我們存儲到非關系型數(shù)據(jù)庫中

相反則存儲到關系型數(shù)據(jù)庫中

  • 具體使用: 會在項目中實現(xiàn)

二. 安裝MongoDB

1.安裝MongoDB

MongoDB版本號: 偶數(shù)為穩(wěn)定版(推薦), 基數(shù)為開發(fā)版

MongoDB對32位操作系統(tǒng)支持不佳, 不推薦在32位系統(tǒng)上使用, 并且官方已經(jīng)停更32位安裝包

2.安裝步驟

2.1全程下一步

2.2配置環(huán)境變量, 將MongoDB的bin目錄配置到系統(tǒng)變量Path中

2.3在終端中通過 mongod 啟動 MongoDB

2.4.測試連接

mongo

三. MongoDB 的基本操作

https://docs.mongodb.com/manual/

https://www.mongodb.org.cn/tutorial/

1.連接MongoDB服務器

通過mongo連接MongoDB服務器

2.查看數(shù)據(jù)庫

show dbs

和MySQL中的 show databases; 指令一樣

3.使用數(shù)據(jù)庫

use 數(shù)據(jù)庫名稱

和MySQL中的 use 指令一樣, 只不過MongoDB中的use數(shù)據(jù)庫不存在會自動創(chuàng)建

4.查看數(shù)據(jù)庫中有哪些集合

show collections

#和MySQL中的 show tables; 指令一樣

5.創(chuàng)建集合

db.createCollection('集合名稱');

和MySQL中的 create table xxx(); 指令一樣

6.插入數(shù)據(jù)

db.集合名稱.insert(文檔對象);

和MySQL中的 insert into xxx values () 指令一樣

7.查詢數(shù)據(jù)

db.集合名稱.find();

#和MySQL中的 select * from xxx; 指令一樣

8.刪除集合

db.集合名稱.drop()

#和MySQL中的 drop table xxx; 指令一樣

9.刪除數(shù)據(jù)庫

db.dropDatabase()

#在哪個數(shù)據(jù)庫中就會刪除哪個數(shù)據(jù)庫

#和MySQL中的 drop database xxx; 指令一樣

10.和MySQL的不同

  • 沒有MySQL中表的概念, 取而代之的是集合

  • 創(chuàng)建集合時不用指定集合中有哪些字段

  • 只要是一個合法的文檔對象都可以往里面存儲

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容