iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0
Modern Web

Go into Web!系列 第 16

Day 16 | MongoDB - 好用的 NoSQL 資料庫

資料庫的選擇不只有關聯式資料庫,根據情境的不同我們可能會選擇使用所謂的 NoSQL 來作為資料儲存的地方,其中 MongoDB 就是一個比較常在使用的 NoSQL 資料庫,今天就讓我們來聊聊使用 NoSQL 的情境與如何安裝吧!

NoSQL

什麼是 NoSQL

NoSQL 的意思不是沒有 SQL 的意思,而是 Not Only SQL,也就是不限定為「關聯式資料庫」的資料庫統稱,在操作上,而 NoSQL 本身並不支援使用 SQL,因此使用 NoSQL 通常都是在資料變動性較大、關聯複雜且靈活的情境。

為什麼要使用 NoSQL

前面提到 NoSQL 有著靈活的特性,那詳細到底跟傳統的關聯式資料庫有什麼不同呢,以下整體三點:

不需要預設好資料的 schema 以及資料之間的關聯

一般我們使用關聯式資料庫都要預先將資料的關聯設定好才能夠使用,在現在常常會出現原本沒有關連後來突然出現關聯的物件、或是同一類型的物件有著不同的屬性等等的情境出現,這時候用 NoSQL 就是一個比較好的選擇。

可以自由新增欄位,不需要回頭修改過去的資料文件 (document)

同一種物件的資料格式可能會隨著時間不同逐漸地擴充或是與其他的不同,如果使用關聯式資料庫的話就要不斷的擴充欄位,這樣的作法可能會造成許多欄位是空值的浪費,使用 NoSQL 可以避免掉這種情況,如果特定物件有自己的專有屬性,就直接新增即可,不會影響到其他的物件,這樣的情境在爬蟲時特別好用。

可以自由定義資料文件 (document) 的結構

承如上面兩點所描述,NoSQL 可以讓每個物件的格式都不同,因為儲存是用 json 格式儲存,因此我們可以自由的定義物件內的結構。

MongoDB 介紹與安裝

MongoDB 是什麼


如果對 NoSQL 有耳聞過的人基本上應該都會聽過 MongoDB 的大名,從上圖 db-engines 整理的排名豬可以看出 MongoDB 是目前最多人使用的 NoSQL 資料庫,很非常多的社群再討論,本身使用 C++ 撰寫,因此不用擔心他運行的速度,

安裝(本範例是使用 mac)

安裝 Homebrew

在 mac 上安裝套件我推薦使用 Homebrew 來安裝,我們可以透過以下指令輕鬆的安裝

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

更新 Homebrew

我們先把 Homebrew 更新,這樣在下載 package 時才會載到最新版本

brew update

安裝 MongoDB

接著非常簡單,只要透過 brew 指令安裝 mongodb 就可以將他安裝在本機環境了

brew install mongodb

client 端安裝

安裝完 MongDB 後除了使用 cli 存取外,我推薦使用官方的套件 - compass


如上圖,安裝 compass 非常簡單,只要在這裡 選擇版本、作業系統後,按下 Download 即可下載安裝檔,載完安裝檔後直接點選 下一步 安裝到底即可。

安裝完成後,開啟的畫面如下。

透過 compass 連線至 MongoDB


如上圖,填寫好相關的連線資訊後按下 connect 按鈕即可連線,如果連線成功的話會出現下面這樣的畫面。

小結

今天先跟大家聊聊關於 NoSQL 與 MongoDB 的一些基本觀念與環境,明天我們再來看看怎麼使用 golang 連線到 MongoDB 並且進行資料存取吧

參考


上一篇
Day15 | 透過 golang 實作一個簡單的使用者管理 API(二)
下一篇
Day 17 | 使用 golang 與 MongoDB 互動
系列文
Go into Web!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言