跳至主要内容

MongoDB 簡介

What is MongoDB?

MongoDB 是一種資料庫解決方案,也是一家公司的名稱。其名稱由來為 Humongous(極大的)。

MongoDB 提供用戶伺服器,用戶可在伺服器依其各自需求建立資料庫。

Tables & Collections

在 SQL 資料庫中,構成資料庫的最大單位為資料表(Table)。在 MongoDB 則稱之為 Collection(但不盡相同)。

Documents

在 Collection 當中有許多 Document,其結構類似 JSON,而且還能設計巢狀結構。和注重 Schema 的 SQL 不同是,MongoDB 可說是 schemaless 的資料庫。基於前述特性,MongoDB 的資料結構很有彈性,容易變動,適合資料結構尚未定型或未來會有重大變動的專案。當然開發者不能因此有恃無恐,倘若儲存資料總是不經思索亂搞一通,仍會導致資料結構混亂、難以應用及維護。

JSON (BSON) Data Format

JSON 是對人類友善的格式,而 BSON 則是二進位制的格式。
MongoDB 會將 JSON 轉為 BSON,如此存取速度較快。

MongoDB 以鍵值對儲存資料,
值的型別可以是字串、數字、布林值、物件(line4, lin7)。
再加上前面提及的巢狀結構,如此自由的設計可做到類似 SQL Join Table 的概念。

MongoDB Document 範例
{
"name": "Max",
"age": 29,
"address": {
"city": "Taipei"
},
"hobbies": [
{ "name": "Cooking" },
{ "name": "Sports" }
]
}

The Key MongoDB Characteristics

MongoDB 是 NoSQL,資料之間不必建立關聯,因此存取速度快,適合需要頻繁存取資料的專案。

General Setup Instructions & Installing MongoDB

備註

下載 MongoDB Community Server(macOS 也可透過 Homebrew 下載)
閱讀 MongoDB Manual 官方文件

macOS 下載安裝檔後將之解壓縮,開啟其中的 bin 資料夾。
接著參考官方文件將 bin 資料夾內的二進制檔案複製至本機 bin 資料夾:

  • 從 /Users.../mongodb-macos-x86_64-6.0.6/bin 開啟終端機
  • $ sudo cp ./* /usr/local/bin/ 完成以上操作後,終端機輸入 mongo,若看到相關訊息表示安裝成功。

MongoDB 相關指令

設定 mongod 的路徑
$ mongod --dbpath /Users/YOUR_DB_PATH --logpath /Users/YOUR_LOG_PATH/fileName.log

啟動 mongosh
$ mongosh

以 mongosh 檢視 DB $ show dbs

MongoDB Database Tools

安裝說明

Time To Get Started!

以 mongosh 連接資料庫(若資料庫不存在則建立之) $ use db_name
在 collection 中插入新 document $ db.collection.insertOne()
讀取資料 $ db.collection.find() 清除訊息 $ cls

Shell vs Drivers

Start Developing with MongoDB
使用 Dviver:各種程式語言可選擇對應的 MongoDB Driver,用熟悉的語法開發。 使用 Shell:無關語言,用最硬核的方式開發。習慣後,使用各種 Driver 都能上手。