MongoDB Compass 提供直觀的圖形化介面,簡化了 MongoDB 的連線和操作流程。透過視覺化的方式,使用者可以輕鬆瀏覽資料函式庫、集合和檔案,執行 CRUD 操作,以及監控資料函式庫的效能。對於不熟悉命令列操作的使用者來說,MongoDB Compass 是一個非常友善的工具,可以有效提升開發效率。本文將逐步引導讀者完成 MongoDB Compass 的安裝、連線設定,並透過實際案例示範如何使用它進行資料函式庫操作。此外,文章也提供程式碼片段和詳細解說,幫助讀者更深入地理解 MongoDB 的運作機制。

使用 MongoDB Compass 連線 MongoDB 伺服器

安裝完 MongoDB Compass 之後,我們可以開始使用它。在步驟 4 中,我們將使用 MongoDB Compass 連線到 MongoDB 伺服器。

步驟 4:在 Windows 上使用 MongoDB Compass 連線 MongoDB 伺服器

現在,讓我們嘗試從 Windows 機器上使用 MongoDB Compass 連線 MongoDB 伺服器。請依照以下步驟:

  1. 點選工作列的搜尋區域並輸入 Compass。您會看到 Compass 應用程式出現在搜尋結果中,點選 以管理員身分執行。這將以管理員許可權開啟 MongoDB Compass,如下圖所示:

    圖 16.15:MongoDB Compass - 開啟 MongoDB Compass

  2. 點選 以管理員身分執行 後,將開啟 MongoDB Compass 應用程式。由於這是第一次使用該應用程式,因此會顯示一個滑動視窗,介紹 MongoDB Compass 的功能。此時,您可以閱讀這些功能或關閉滑動視窗,如下圖所示:

    圖 16.16:MongoDB Compass - 應用程式主畫面

  3. 在開始使用 MongoDB Compass 之前,應用程式會要求您決定隱私設定。這些隱私設定不在本文的討論範圍內,您可以根據個人或組織的偏好進行選擇。建議點選 MongoDB 隱私政策連結 以瞭解更多相關資訊。您可以勾選或取消勾選所有選項,如下圖所示:

    圖 16.17:MongoDB Compass - 隱私設定

  4. 有兩種方法可以連線到 MongoDB 伺服器與 MongoDB Compass。第一種方法是使用連線字串,第二種方法是個別填寫連線欄位。讓我們探索第二種方法。點選 個別填寫連線欄位 的連結,如下圖所示:

    圖 16.18:MongoDB Compass - 連線到 MongoDB 伺服器 - 個別填寫連線欄位

  5. 在我們的範例中,我們輸入了以下值:

    • 主機名稱:localhost
    • 連線埠:27017
  6. 現在點選 連線 按鈕以連線到已經在本地機器上執行於連線埠 27017 的 MongoDB 伺服器(這是 MongoDB 伺服器的預設連線埠),如下圖所示:

    圖 16.19:MongoDB Compass - 連線到 MongoDB 伺服器 - 連線到本地 MongoDB 伺服器

  7. 點選連線後,我們可以看到資料函式庫的列表。其中一些資料函式庫可能與 MongoDB 系統相關,這些是由 MongoDB 預設建立的,如下所列:

    • admin
    • config
    • local
  8. 我們將在之前章節中建立的資料函式庫 BPBOnlineBooksDB 上進行操作,如下圖所示:

    圖 16.20:MongoDB Compass - 資料函式庫列表

到目前為止,我們已經學習瞭如何使用 MongoDB Compass 連線到 MongoDB 伺服器。在下一節中,我們將透過更多實際範例來瞭解 MongoDB Compass。

使用 MongoDB Compass 的實際範例

以下是一些使用 MongoDB Compass 的實際範例,以更好地瞭解它:

範例1:瀏覽資料函式庫中的集合

要瀏覽資料函式庫中的集合,請依照以下步驟,如下圖所示:

  1. 連線到 MongoDB 伺服器,如本章前一節所述。

  2. 點選您選擇的資料函式庫。

  3. 您將獲得該特定資料函式庫中存在的集合列表。

    圖 16.21:範例1 - 瀏覽資料函式庫中的集合

在我們的範例中,我們看到了如何瀏覽資料函式庫中的 MongoDB 集合列表。

範例2:在資料函式庫中建立新集合

要在資料函式庫中建立新集合,請依照以下步驟:

  1. 連線到 MongoDB 伺服器,如本章前一節所述。

  2. 點選您選擇的資料函式庫。

  3. 您將獲得該特定資料函式庫中存在的集合列表。

  4. 要在該資料函式庫中建立新集合,請點選您正在瀏覽集合的畫面右上角的 建立集合 按鈕,如下圖所示:

    圖 16.22:範例2 - 建立新集合 - 畫面1

  5. 這將開啟一個新的彈出視窗,您可以在其中輸入集合的名稱。輸入集合名稱後,點選 建立集合 按鈕。這將在資料函式庫中建立一個新集合,如下圖所示:

    圖 16.23:範例2 - 建立新集合 - 畫面2

  6. 您可以在資料函式庫中瀏覽集合列表,以驗證該集合是否已由 MongoDB Compass 建立,如下圖所示:

    圖 16.24:範例2 - 建立新集合 - 畫面3

因此,在我們的範例中,我們看到了如何使用 MongoDB Compass 在資料函式庫中建立新的 MongoDB 集合。

範例3:瀏覽資料函式庫中的檔案

要瀏覽資料函式庫中的檔案,請依照以下步驟,如下圖所示:

  1. 連線到 MongoDB 伺服器,如本章前一節所述。

  2. 點選您選擇的資料函式庫。

  3. 您將獲得該特定資料函式庫中存在的集合列表。

  4. 點選您選擇的集合。

  5. 一旦您選擇了集合,您將獲得該特定集合中存在的檔案列表。

  6. 請點選檔案左側的展開圖示,以檢視檔案內的所有資料。

    圖 16.25:範例3 - 瀏覽資料函式庫中的檔案

在我們的範例中,我們看到了如何瀏覽集合中的 MongoDB 檔案列表。

範例4:在檔案中執行 CRUD 操作

MongoDB Compass 中提供了許多功能來操作資料,如下圖所示:

  1. 連線到 MongoDB 伺服器,如本章前一節所述。
  2. 請點選您選擇的資料函式庫。
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title MongoDB Compass 連線與操作

package "資料庫架構" {
    package "應用層" {
        component [連線池] as pool
        component [ORM 框架] as orm
    }

    package "資料庫引擎" {
        component [查詢解析器] as parser
        component [優化器] as optimizer
        component [執行引擎] as executor
    }

    package "儲存層" {
        database [主資料庫] as master
        database [讀取副本] as replica
        database [快取層] as cache
    }
}

pool --> orm : 管理連線
orm --> parser : SQL 查詢
parser --> optimizer : 解析樹
optimizer --> executor : 執行計畫
executor --> master : 寫入操作
executor --> replica : 讀取操作
cache --> executor : 快取命中

master --> replica : 資料同步

note right of cache
  Redis/Memcached
  減少資料庫負載
end note

@enduml

此圖示顯示了使用MongoDB Compass的基本操作流程。

程式碼實作與解析

連線MongoDB的程式碼片段

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'BPBOnlineBooksDB';

MongoClient.connect(url, function(err, client) {
    if (err) {
        console.log(err);
    } else {
        console.log("Connected successfully to server");
        const db = client.db(dbName);
        // 在這裡進行資料函式庫操作
        client.close();
    }
});

程式碼解析

此段程式碼展示瞭如何使用 Node.js 的 mongodb 包連線到本地的 MongoDB 資料函式庫。

  1. 首先,需要引入 mongodbMongoClient
  2. 定義了連線 URL 和要操作的資料函式庫名稱。
  3. 使用 MongoClient.connect 方法連線到指定的 URL。
  4. 在回呼函式中檢查是否有錯誤發生。
  5. 如果連線成功,則取得指定的資料函式庫物件,並可進行進一步的操作。
  6. 操作完成後,關閉客戶端連線。

使用Mongoose進行CRUD操作的程式碼片段

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/BPBOnlineBooksDB', { useNewUrlParser: true, useUnifiedTopology: true });

const bookSchema = new mongoose.Schema({
    title: String,
    author: String
});

const Book = mongoose.model('Book', bookSchema);

// 建立新檔案
const newBook = new Book({ title: 'Example Book', author: 'John Doe' });
newBook.save(function(err, book) {
    if (err) {
        console.log(err);
    } else {
        console.log('Book saved successfully:', book);
    }
});

程式碼解析

此段程式碼展示瞭如何使用 Mongoose 在 Node.js 中進行 CRUD 操作。

  1. 首先,需要引入 mongoose 包並連線到指定的 MongoDB 資料函式庫。
  2. 定義了一個 Mongoose 的 Schema,用於描述檔案的結構。
  3. 根據 Schema,建立了一個 Mongoose Model,用於操作對應的集合。
  4. 建立了一個新的檔案例項,並呼叫 save 方法儲存到資料函式庫中。
  5. save 方法的回呼函式中處理儲存結果,輸出成功或失敗的資訊。

管理與操作 MongoDB Compass

MongoDB Compass 是 MongoDB 官方提供的圖形化使用者介面(GUI)工具,能夠讓使用者更輕鬆地管理和操作 MongoDB 資料函式庫。在本章中,我們將介紹 MongoDB Compass 的安裝、使用方法,以及如何利用它進行資料函式庫的 CRUD(新增、讀取、更新、刪除)操作。

安裝 MongoDB Compass

  1. 首先,您需要從 MongoDB 官方網站下載 MongoDB Compass 的安裝檔案。
  2. 根據您的作業系統(Windows、Linux 或 MacOS),執行相應的安裝步驟。
  3. 安裝完成後,啟動 MongoDB Compass。

連線至 MongoDB 伺服器

  1. 開啟 MongoDB Compass 後,您需要連線到 MongoDB 伺服器。
  2. 輸入您的 MongoDB 伺服器的連線字串或主機名稱和連線埠號碼。
  3. 按下「連線」按鈕,建立與 MongoDB 伺服器的連線。

使用 MongoDB Compass 進行 CRUD 操作

檢視資料函式庫和集合

  1. 連線成功後,您將看到 MongoDB 伺服器上的資料函式庫列表。
  2. 選擇您要操作的資料函式庫,即可檢視該資料函式庫中的集合列表。
  3. 點選您要操作的集合,即可檢視該集合中的檔案列表。

新增、編輯和刪除檔案

  1. 在檔案列表頁面,您可以點選「新增資料」按鈕來新增檔案。
  2. 若要編輯檔案,請點選檔案右側的「編輯」按鈕,在彈出的視窗中進行修改後,按下「更新」按鈕儲存變更。
  3. 若要刪除檔案,請點選檔案右側的「刪除」按鈕。
// 使用 MongoDB Node.js Driver 新增檔案的範例程式碼
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
const dbName = 'mydatabase';
const collectionName = 'mycollection';

MongoClient.connect(url, function(err, client) {
  if (err) {
    console.log(err);
  } else {
    console.log('Connected to MongoDB');
    const db = client.db(dbName);
    const collection = db.collection(collectionName);
    collection.insertOne({ name: 'John Doe', age: 30 }, function(err, result) {
      if (err) {
        console.log(err);
      } else {
        console.log('File inserted successfully');
      }
      client.close();
    });
  }
});

內容解密:

上述程式碼展示瞭如何使用 MongoDB Node.js Driver 連線到 MongoDB 伺服器,並新增一個檔案至指定的集合中。

  • 首先,我們需要引入 MongoClient 類別並指定 MongoDB 伺服器的連線字串和資料函式庫名稱。
  • 使用 MongoClient.connect 方法建立與 MongoDB 伺服器的連線。
  • 連線成功後,我們取得指定資料函式庫和集合的例項,並使用 insertOne 方法新增一個檔案。
  • 新增成功後,關閉與 MongoDB 伺服器的連線。

重點回顧

  • MongoDB Compass 是官方提供的 GUI 工具,用於管理和操作 MongoDB 資料函式庫。
  • 可以在 Windows、Linux 和 MacOS 等多個平台上使用。
  • 提供 CRUD 操作功能,方便使用者對資料函式庫進行管理。

練習題

  1. MongoDB Compass 是什麼?
  2. 如何使用 MongoDB Compass 連線到 MongoDB 伺服器?
  3. 如何在 MongoDB Compass 中進行 CRUD 操作?

多選題

  1. MongoDB Compass 是: a. 命令列介面 b. 程式語言 c. 圖形化使用者介面(GUI)工具 d. 以上皆非

  2. 以下哪個作業系統支援 MongoDB Compass? a. Windows b. Linux c. MacOS d. 以上皆是

答案

  1. c
  2. d

關鍵術語

  • GUI:圖形化使用者介面
  • CRUD:新增、讀取、更新、刪除
  • MongoDB Compass:MongoDB 官方提供的 GUI 工具,用於管理和操作 MongoDB 資料函式庫。

管理 MongoDB 服務與監控

MongoDB 的主要處理程式為 mongod,它負責處理資料請求、管理資料存取以及執行背景管理程式。瞭解如何管理 mongod 程式對於 MongoDB 的維運至關重要。

瞭解 mongod 程式

mongod 是 MongoDB 的主要守護程式,執行於背景。它負責以下功能:

  • 處理資料請求
  • 管理資料存取
  • 執行背景管理程式

在 Windows 系統中,mongod 也可以作為服務執行。預設情況下,MongoDB 安裝程式會自動建立一個名為 “MongoDB Server (MongoDB)” 的服務。

管理 mongod 程式

檢查 MongoDB 服務

在 Windows 中檢查 MongoDB 服務的步驟如下:

  1. 在 Windows 搜尋框中輸入 services,然後開啟 Windows 服務管理員。
  2. 在服務管理員中,找到 MongoDB Server (MongoDB) 服務,並檢視其狀態。
  3. 可以選擇啟動、停止或重新啟動該服務。

檢視 MongoDB 服務屬性

  1. 在 Windows 服務管理員中,右鍵點選 MongoDB Server (MongoDB) 服務,選擇屬性。
  2. 在屬性視窗中,可以檢視 mongod 的可執行檔路徑及設定檔路徑,如 mongod.cfg
  3. mongod.cfg 檔案包含了 MongoDB 的預設設定選項。

從命令列執行 mongod

除了作為服務執行外,也可以從命令列執行 mongod。步驟如下:

  1. 以系統管理員身分開啟命令提示字元。
  2. 切換到 MongoDB 的 bin 目錄,如 C:\Program Files\MongoDB\Server\4.4\bin
  3. 執行 mongod 命令,並指定相關引數,如埠號和資料函式庫路徑。

範例命令如下:

mongod --port 27017 --dbpath "c:\Program Files\MongoDB\Server\4.4\data\db"

程式碼解說:

  • mongod:啟動 MongoDB 服務的命令。
  • --port 27017:指定 MongoDB 監聽的埠號為 27017。
  • --dbpath "c:\Program Files\MongoDB\Server\4.4\data\db":指定資料函式庫檔案的儲存路徑。

此命令會在指定的埠號和資料函式庫路徑下啟動 MongoDB 服務。請確保指定的資料函式庫路徑已經建立,否則需要先建立該目錄。

停止 MongoDB 服務

從 Windows 服務管理員停止 MongoDB 服務

  1. 開啟 Windows 服務管理員。
  2. 找到 MongoDB Server (MongoDB) 服務。
  3. 點選停止按鈕以停止 MongoDB 服務。

從命令列停止 MongoDB 服務

  1. 以系統管理員身分開啟命令提示字元。
  2. 切換到 MongoDB 的 bin 目錄。
  3. 使用 Ctrl + C 鍵停止正在執行的 MongoDB 服務。

MongoDB 的監控與診斷

MongoDB 的監控與診斷是資料函式倉管理員的重要任務之一。透過監控,我們可以瞭解 MongoDB 例項的運作狀況,分析日誌和其他指標,以預防潛在的問題,如查詢效能緩慢、流量過高等。

監控層級

我們可以在不同的層級對 MongoDB 進行監控,例如例項層級、資料函式庫層級或集合層級等。當遇到問題時,管理員需要快速診斷並採取相應的措施,以避免問題升級或導致系統故障。

MongoDB 工具的安裝

為了監控和診斷 MongoDB,我們需要安裝 MongoDB 提供的工具。以下是安裝步驟:

  1. 前往 MongoDB 官方網站(https://www.mongodb.com/),將滑鼠指標移到頂部導航欄的「Software」連結上,然後點選「Community Server」。
  2. 在 MongoDB Community Edition 頁面中,點選頂部的「Tools」卡片。
  3. 在 MongoDB Tools 頁面中,點選底部的「MongoDB Database Tools」連結。
  4. 在 MongoDB Database Tools 頁面中,選擇 MSI(Windows 安裝程式檔案)作為套件選項,然後點選「Download」按鈕。
  5. 下載完成後,執行安裝程式,按照安裝精靈的指示完成安裝。

安裝過程中的注意事項

在安裝過程中,安裝精靈會要求您接受授權協定和其他條款。建議仔細閱讀這些內容。

驗證 MongoDB 工具的安裝

安裝完成後,可以透過以下步驟驗證 MongoDB 工具是否正確安裝:

  1. 開啟命令提示字元,導航到 MongoDB 工具的安裝目錄(例如:C:\Program Files\MongoDB\Tools)。
  2. 導航到 bin 目錄(例如:C:\Program Files\MongoDB\Tools\100\bin)。
  3. bin 目錄中執行 dir 命令,您將看到一系列的可執行檔(.exe),這些檔案是 MongoDB 工具和公用程式的一部分。

使用 MongoDB 工具

MongoDB 工具和公用程式提供了豐富的功能,可以幫助管理員監控和診斷 MongoDB 例項。後續章節將介紹如何使用這些工具。

程式碼示例

# 導航到 MongoDB 工具的安裝目錄
cd C:\Program Files\MongoDB\Tools\100\bin

# 檢視 bin 目錄下的內容
dir

內容解密:

  • cd 命令用於更改目前的工作目錄。在這裡,我們導航到 MongoDB 工具的 bin 目錄。
  • dir 命令用於顯示目前目錄下的檔案和子目錄列表。執行此命令後,您將看到一系列的可執行檔,這些是 MongoDB 提供的工具和公用程式。