MongoDB 的原生命令列 shell(mongosh)功能強大,但並非日常資料庫管理最友善的介面。開發者經常發現自己需要一個視覺化工具來瀏覽集合、檢查文件、執行臨時查詢和管理索引——這些任務使用圖形化介面效率更高。雖然 MongoDB Compass 提供了優秀的桌面工具,但在某些情況下,基於 Web 的管理介面更實用:無頭伺服器、共享開發環境、CI/CD 管線以及無法安裝桌面軟體的部署環境。
Mongo-express 是填補這一缺口最廣泛採用的開源解決方案。它使用 Express.js 和 Node.js 建置,是一個輕量級、自包含的 Web 應用程式,可連接到 MongoDB 並透過任何現代瀏覽器提供全面的管理介面。擁有超過 6000 萬次的 npm 下載量和 18 年的持續開發,它是開源生態系統中最經實戰考驗的資料庫管理工具之一。
該工具的長壽證明了其設計理念:專注做好一件事,保持簡單,避免功能膨脹。Mongo-express 不會試圖取代 MongoDB Compass 的每一個功能。相反,它專注於最常見的管理任務——瀏覽、查詢、編輯和監控——並透過一個乾淨、功能齊全的介面來提供這些功能,載入速度快且運行可靠。
核心功能
Mongo-express 透過其 Web 介面提供了一套全面的資料庫管理功能:
| 功能 | 描述 | 使用案例 |
|---|---|---|
| 資料庫瀏覽器 | 列出並導覽伺服器上的所有資料庫 | 快速探索資料概況 |
| 集合檢視器 | 使用分頁和篩選功能瀏覽文件 | 無需編寫查詢即可檢查資料 |
| 文件編輯器 | 以表格或 JSON 檢視方式編輯文件 | 無需 mongosh 即可修復資料問題 |
| 查詢執行器 | 執行臨時 MongoDB 查詢 | 開發期間測試查詢 |
| 索引管理員 | 檢視、建立和刪除索引 | 效能最佳化和綱要變更 |
| 匯入/匯出 | 匯入和匯出 JSON 與 CSV 資料 | 資料遷移和備份 |
| 伺服器狀態 | 檢視資料庫統計、集合大小和效能 | 監控資料庫健康狀況 |
| 驗證 | 基本驗證和連線字串驗證 | 保護生產資料庫的存取 |
部署選項
Mongo-express 根據你的基礎設施支援多種部署方式:
| 部署方式 | 命令 | 最適用於 |
|---|---|---|
| npm 全域 | npm install -g mongo-express | 本地開發、單一開發者 |
| Docker | docker run mongo-express | 容器化環境、CI/CD |
| Docker Compose | 與 MongoDB 一起作為堆疊的一部分 | 多服務應用程式 |
| Heroku | 自訂 buildpack | PaaS 部署 |
| Kubernetes | Helm chart | 大規模生產環境 |
Docker 快速入門
嘗試 Mongo-express 最快的方式是使用 Docker,將其連接到 MongoDB 容器:
docker network create mongo-net
docker run -d --network mongo-net --name mongo mongo:7
docker run -it --rm --network mongo-net \
-e ME_CONFIG_MONGODB_SERVER=mongo \
-p 8081:8081 \
mongo-express
架構與請求流程
下圖展示了 Mongo-express 如何與 MongoDB 伺服器和用戶端瀏覽器互動:
flowchart TD
Browser[瀏覽器<br>使用者介面] --> HTTP[HTTP/HTTPS]
HTTP --> Express[Express.js 伺服器<br>連接埠 8081]
Express --> Auth[驗證層<br>基本驗證 / OAuth]
Auth --> Router[路由處理器]
subgraph API[API 層]
Router --> DB[資料庫路由]
Router --> Coll[集合路由]
Router --> Doc[文件路由]
Router --> Index[索引路由]
Router --> Stats[統計路由]
end
DB --> Driver[MongoDB Node.js 驅動程式]
Coll --> Driver
Doc --> Driver
Index --> Driver
Stats --> Driver
Driver --> MongoDB[(MongoDB 伺服器<br>連接埠 27017)]Express.js 伺服器充當瀏覽器和 MongoDB 之間的中介層。每個 HTTP 請求都會經過驗證、路由到適當的處理程式、轉換為 MongoDB 驅動程式呼叫,並將結果呈現為 HTML 或 JSON。這種架構使 Mongo-express 易於擴展(新增路由和處理程式)且易於保護(層疊中介軟體以實現驗證、速率限制和稽核記錄)。
設定
Mongo-express 透過環境變數或 config.js 檔案進行設定:
module.exports = {
mongodb: {
server: 'localhost',
port: 27017,
connectionString: 'mongodb://user:pass@localhost:27017/db',
},
site: {
port: 8081,
cookieSecret: 'your-secret-key',
basicAuth: {
username: 'admin',
password: 'admin',
},
},
};
開始使用
欲開始使用 Mongo-express,請造訪 Mongo-express GitHub 儲存庫 取得安裝說明、設定指南和版本資訊。npm 套件頁面 提供最新版本和相依性資訊。
常見問題
什麼是 Mongo-express?
Mongo-express 是一個輕量級、基於 Web 的 MongoDB 管理介面,使用 Express.js 和 Node.js 建置。它提供圖形化 UI,用於瀏覽資料庫、檢視和編輯文件、執行臨時查詢以及管理索引,無需使用 mongo shell 或 MongoDB Compass。
如何安裝 Mongo-express?
Mongo-express 可透過 npm(npm install -g mongo-express)安裝,或使用 Docker(docker run -it –rm -p 8081:8081 mongo-express)執行。設定透過環境變數或設定檔完成,指定 MongoDB 連線字串和驗證選項。
可以用 Mongo-express 做什麼?
你可以瀏覽所有資料庫和集合,以表格或 JSON 檢視方式檢視和編輯文件,建立和刪除資料庫與集合,管理索引,執行自訂查詢,匯入和匯出 JSON/CSV 資料,以及監控伺服器狀態和資料庫統計資訊。
Mongo-express 適合生產環境使用嗎?
Mongo-express 主要設計用於開發和管理任務。雖然可以用於管理生產資料庫,但應始終部署在驗證機制(內建或反向代理)之後,限制在受信任的網路中,並且在沒有適當安全措施的情況下絕不直接暴露於公共網際網路。
Mongo-express 與 MongoDB Compass 相比如何?
Mongo-express 基於 Web 且免費(MIT 授權),而 MongoDB Compass 需要下載桌面應用程式,並有付費方案才能使用進階功能。Mongo-express 非常適合伺服器端環境、CI/CD 管線以及偏好可與資料庫一起部署的瀏覽器型工具的使用者。
延伸閱讀
- Mongo-express GitHub 儲存庫 – 原始碼、問題追蹤器和社群貢獻
- npm 上的 Mongo-express – 套件註冊表和版本歷史
- MongoDB 官方文件 – 資料庫操作和驅動程式使用的 MongoDB 文件
- Express.js 官方網站 – 驅動 Mongo-express 的 Node.js Web 框架
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!