MySQL數據庫是關係型數據庫,可是使用node開發時多用MongoDB數據庫,二者各有優點,因此綜合學習會有更好的選擇。html
看看官網是怎麼介紹的吧~node
MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling.mongodb
即 MongoDB 是文檔數據庫,其中MongoDB中的每一條記錄就是一個文檔。下面是一些對於MongoDB數據庫重要知識點的總結歸納。shell
1. MongoDB 中數據庫、集合、文檔的概念是什麼? 他們之間的關係是怎樣的?數據庫
咱們知道MySQL是關係型數據庫,而MongoDB不是,咱們使用下表進行對比:瀏覽器
經過這張表中的 table joins 咱們能夠看出MongoDB的最大特色:不支持錶鏈接。 即它不屬於關係型數據庫。服務器
文檔:mongoose
下面就是一個文檔:ide
{"name": "John Zhu", "age":21}
能夠看出這和JSON基本上是一致的。函數
集合:
下面就是一個集合(包含了兩個文檔,固然也能夠更多):
{"name": "John Zhu", "age": 21} {"gender": "male", "school": "xjtu"}
這就是一個集合,其中包含了兩個文檔,值得注意的是,這個集合中的兩個文檔的類型並不一樣,也就是說MongoDB在組織記錄時的方法和MySQL是不同的。
數據庫:
數據庫是由多個集合組成的,而且數據庫之間是獨立的,這和 MySQL 是同樣的。
下面的幾個數據庫是MongoDB保留的:
2. 如何在計算機上安裝MongoDB數據庫?
第一步: 官網下載.msi文件。
第二步: 默認路徑安裝(其中 Complete 是默認安裝到C盤的program files下的MongoDB中,也能夠選擇Custom來自定義安裝文件,爲了方便,推薦使用默認安裝)
默認的安裝路徑爲:C:\Program Files\MongoDB\Server\3.4\bin。
第三步:建立data/db
mongodb默認會在安裝的盤的根目錄的建立文件夾data/db來存儲數據,若是使用命令安裝發現並不能建立data文件夾,那麼就要手動建立該文件。
即在C盤根目錄下建立data文件,data文件建立db文件夾用來存儲數據庫數據。
固然也不是必須在根目錄下建立data/db文件,但若是不這樣,後序在操做上比較麻煩,須要指出data/db的位置才行。好比將dada/db放在了f盤,這一這樣啓動MongoDB服務器:
mongod --dbpath f:/data
顯然,這是很是麻煩的。
第四步:啓動MongoDB服務器(注意:若是沒有第三步中建立data/db,那麼本次執行將會失敗!)
複製路徑C:\Program Files\MongoDB\Server\3.4\bin在cmd中進入,而後執行:
mongod
啓動MongoDB服務器。
若是咱們但願更改端口,能夠這樣啓動數據庫:
mongod -port 28888
這就會在端口28888監聽了。 咱們再瀏覽器上輸入 localhost:28888 便可訪問本地的MongoDB服務器。
在沒有第三步的狀況下執行此命令,結果以下:
能夠看到開始給MongoDB服務器分配了一個pid(進程id),分配了27017端口用於訪問,而且默認的數據庫在C盤下的data\db下(可是執行這一步以前咱們沒有建立這個文件),host爲個人主機名稱。
接着在中間靠後出現錯誤提示: exception in initAndListen: 29 Data directory C:\data\db\ not found, termination ,即因爲沒有找到 data\db 文件夾,因此分配數據失敗,進而關閉窗口,服務器啓動失敗。
在完成第三步的狀況下,結果以下:
即一樣分配了pid等,而後由於已經存在了 data/db 因此成功地導入數據,這時咱們打開C盤的data/db發現就已經多了不少數據,以下:
最終提示 : waiting for connections on port 27017... 即MongoDB數據庫已經開啓,等待客戶端鏈接...
這時咱們能夠在瀏覽器中輸入 localhost:27017 , 顯示以下:
即客戶端嘗試經過http協議鏈接MongoDB服務器。
第五步:鏈接並操做數據庫
另外打開一個cmd(這是關鍵,由於服務器要運行,因此不能破壞剛剛開啓的服務器),而後輸入:
mongo
這樣就打開了Mongo Shell, 而後經過shell咱們就能夠管理數據庫了。
以下所示:
能夠看到在輸入了mongo以後,MongDB的版本爲3.4.4, 成功鏈接到了 MongoDB 服務器,同時還給出了一些警告, 即鏈接控制不被容許,且對於數據和配置的讀寫都是不受限制的。
注意: 這裏mongod鏈接不帶鑑權,客戶端直接連上就能夠操做了。 若是須要能夠自行設置。
Ok! 到這裏就能夠進行MongoDB數據庫的操做了。可是咱們發現,若是每次但願開啓MongoDB服務器,並鏈接服務器,都須要先C: -> cd program files -> cd mongodb -> cd server -> cd 3.4 -> cd bin 而後再執行其餘的操做,這是很是麻煩的。 因此將之將入環境變量是一個不錯的方法!
第六步: 將mongodb路徑加入環境變量,方便操做。
以下所示:
如今咱們發現,即便不進入bin文件,也能夠直接執行mongod命令(開啓MongoDB數據庫)和mongo命令(鏈接MongoDB數據庫)了,以下所示:
3. 什麼是Mongo Shell? 他有什麼用?
MongoDB Shell是MongoDB自帶的交互式Javascript shell,用來對MongoDB進行操做和管理的交互式環境。因此在shell中咱們就能夠執行JavaScript代碼,包括函數。(console不可以使用)。以下所示:
能夠看到經過mongo咱們就能夠進入shell了,而後就可使用一些簡單的js代碼, 經過ctrl + c或者是quit() 函數能夠退出shell。
能夠看到咱們能夠利用 {} 來多行輸入。
另外,咱們輸入db,能夠發現會返回test, 即test是默認的MongoDB數據庫。
下面是在shell中的一些基本操做:
即其中的 show dbs能夠顯示出當前全部的數據庫, use admin表示切換到admin數據庫, 而 db 表示顯示當前的數據庫。
什麼是Mongoose呢?它是用於管理數據的。後面詳細介紹。
mongoose實際上就是對操做mongoDB數據庫代碼的一層封裝,方便咱們經過js使用數據庫。 可是直接使用mongodb也是能夠的。