和 MySQL 不同的地方是,我們這次不使用安裝在自己電腦上的 MongoDB,而是採用雲端的MongoDB 來做接下來幾天的介紹。
首先我們先到 MongoDB Atlas 的官方網站 : 點我。
選擇右上角的 Try Free 然後註冊
這邊可以直接選 Continue 左邊的 Skip
然後選擇免費的 cluster (左邊那個)
台灣的讀者可以選擇Google Cloud 下面台灣的伺服器,剩下的用預設的就可以了。左下角應該會顯示 Free 的字樣。確定了就可以按綠色的 Create Cluster。
這時候你會看到中間有個方框被虛線圍繞,這就是他正在建構屬於你的MongoDB. 在等待之餘我們來安裝MongoDB 的 GUI.
等她啟動完畢,介面應該會變成這樣
簡單解釋一下,這個 MongoDB GUI 叫做 MongoDB Compass. 其實只是一個讓你在電腦上可以直接連線到雲端MongoDB 的小工具。我只是覺得他很幫便而且有內建的 Mongo Shell (打指令的地方) 可以一件雙雕。不然其實你硬是要直接用 MongoDB Altas 的介面也是可以。
安裝的方法就是回到剛剛我們註冊的頁面,或是使用這個傳送門。並依照你的電腦來下載適合的應用程式。這次的安裝就很簡單,下一步按到底就可以了!
安裝完成執行應用程式應該會長這樣
來到 Altas 的頁面,選擇左邊的Connect
我們偷懶一點直接允許從任何地方連線(右邊的選項) 並創立登入這個資料庫的使用者帳號密碼,按下上面的 Add IP Address 然後下面的 Create Database User。完成之後選擇 Choose a connection method。
這時候選擇最下面的 Connect using MongoDB Compass 就會看到下面這個畫面
我們複製那個網址列然後貼到 Compass GUI 上面,記得要把剛剛創立資料庫使用者的帳號密碼給放進網址列並按下 Connect 就大功告成了!
我們回到網頁版的 Altas 來匯入MongoDB的範例資料。選擇 Collections並點選 Load a Sample Dataset,然後選擇 Load a Sample Dataset。他會花一些時間載入這些數據。
完成之後我們可以回到 GUI 按下左邊的重新整理就會看到所有範例資料都匯入了。
即使是從 關聯式資料庫管理系統,切換到NoSQL 的 MongoDB,很多的概念是可以移轉讓你可以快速上手的。讓我們看一張用語和定義之間的比較表。在兩個系統中,我們都有資料庫,不同式的是,在資料庫裏面,我們有很多的關聯表 (Relation Tables),每一筆資料都是一列(Row/Tuple)。我們昨天有說過,MongoDB 採用的是 Key-Value Pair,所以每一筆存在MongoDB 中的資料都是一個 JSON,我們把她想成是一個文件 (Document) 而很多文件就變成了集合 (Collections)。同時,這裡的每一個 Value 對應到的就是RMDB裡面的行。
所以如果在 RMDB 裡面我們有一行寫:
('C001', 'John', 20)
那在MongoDB 就會是下面這個 Document。
{
"_id": ObjectId("89bb475863d4719f3"),
"customer_ID": "C001",
"customer_name":"John",
"age": 20
}
(影像取自 Beginners Book)
所以讓我們回到範例資料中,紅色方框框起來的就是這個伺服器上的所有資料庫,橘色的地方就是這個資料庫裡面的資料集合(Collections),右手邊藍色框就是這個資料集合中的一筆文件 (Document),淺綠色則是這個文件中的一個欄位(Field)
我們可以把下面的Mongo Shell 打開
這裡我分別打入了三個指令:
show dbs;
這個指令會列出這個伺服器上的資料庫,跟MySQL一樣我們透過下面的指令選擇資料庫
use sample_weatherdata;
列出資料庫中的數據集合
show collections;
最後,也是今天最重要的指令
db.data.find();
這裡我們選擇了 data 這個 collection 然後尋找。這時候的尋找我們沒有給他任何的條件,所以他會列出這個 collection 中的 document。然後你會發現這個跟上面直接用GUI點選是一樣的。我們接下來幾天的介紹會以GUI 為主,但是每次寫完完整的指令,也會用Mongo Shell 的語法完整逞現。這個原因是,當未來有一天你要串接網路應用程式,或是分析軟體,還是得用 Mongo Shell 的指令。現在我們用GUI是為了要方便了解和學習使用 MongoDB。