
在現代資料庫的世界裡,MongoDB 以其靈活的 NoSQL 文件模型 (Document Model),成為了無數新創公司與開發者的首選。它擺脫了傳統關聯式資料庫僵硬的欄位限制,讓你能以更接近真實世界物件的方式,自由地儲存與查詢複雜、多變的 JSON 格式資料。
然而,當這些靈活的數據需要與外部世界互動時——例如,將新的使用者註冊資料寫入 MongoDB,或是每天從 MongoDB 中撈取報表發送到 Slack——你便需要一個同樣靈活的自動化工具。這,就是 n8n 登場的舞台。
n8n 與 MongoDB 的結合,堪稱天作之合。因為 n8n 的核心資料傳遞格式,正是 JSON,這與 MongoDB 的 BSON 文件結構能夠完美、無痛地對應。這意味著你可以將一個從 Webhook 接收到的 JSON 資料,幾乎不經轉換,就直接存入 MongoDB;反之,從 MongoDB 讀取出的文件,也能立刻在 n8n 的後續流程中被無縫使用。
這篇文章將是你的 n8n 整合 MongoDB 的終極實踐指南。我們將從最關鍵的「連線字串」設定開始,深入解析 MongoDB 節點的核心操作,並透過兩個真實世界的實戰案例,手把手教你如何打造「IoT 數據自動入庫」與「會員訂閱到期提醒」等強大流程,讓你學會如何駕馭 NoSQL 的數據彈性,建立更現代化、更靈活的自動化後端。
天作之合:為什麼 n8n 的 JSON-first 思維與 MongoDB 完美契合?
在開始之前,你必須理解為何 n8n 是自動化 MongoDB 數據的最佳選擇之一。
- 原生數據格式的無縫對接: n8n 的工作流中,每一筆流動的資料 (Item) 本質上就是一個 JSON 物件。這與 MongoDB 以 BSON (一種二進位的 JSON) 儲存文件的核心思想完全一致。你不需要像處理 SQL 資料庫那樣,煩惱如何將多個表格的欄位對應到一個物件,資料的傳入與傳出都極其自然。
- 擁抱彈性結構 (Flexible Schema): NoSQL 的一大優勢就是你不需要預先嚴格定義所有欄位。如果今天你的 Webhook 多傳了一個
source
欄位,你不需要去修改資料庫的結構,n8n 的 MongoDBInsert
節點會直接將這個新欄位一併存入文件中。這對於需要快速迭代、處理多樣化數據來源的應用來說,是巨大的優勢。 - 視覺化的複雜查詢: MongoDB 的查詢語法本身就是 JSON 格式。n8n 節點巧妙地將其視覺化,讓你可以透過填寫欄位的方式,輕鬆組合出複雜的查詢條件(例如,
{ "status": "active", "points": { "$gt": 100 } }
),而無需手寫完整的 JSON 查詢。
連線設定:如何取得 MongoDB 連線字串 (Connection String) 並建立 n8n 憑證
要讓 n8n 與你的 MongoDB 資料庫溝通,你需要一把關鍵的鑰匙——「連線字串 (Connection String)」。
如何取得連線字串
無論你使用的是 MongoDB Atlas (官方雲端服務) 還是自架設的 MongoDB,你都可以從管理介面中找到這串獨一無二的連線 URI。
- MongoDB Atlas 用戶:
- 登入你的 Atlas 儀表板。
- 在你的叢集 (Cluster) 頁面,點擊「Connect」。
- 選擇「Drivers」。
- 在 Driver 和 Version 選擇中,Node.js 版本選擇最新即可。
- 你會看到一串
mongodb+srv://...
開頭的連線字串。複製這串完整的字串。你需要將其中的<password>
替換成你設定的資料庫使用者密碼。
- 自架設用戶: 你的連線字串通常會是
mongodb://<user>:<password>@<host>:<port>/<database>
的格式。
在 n8n 中建立憑證
- 在 n8n 畫布上,新增一個
MongoDB
節點。 - 在
Credential
欄位點擊「Create New」。 - Connection URI: 將你剛剛取得並修改好密碼的完整連線字串,貼到這個欄位中。
- 儲存憑證。n8n 會嘗試連線,如果成功,你的憑證就建立完成了。

核心操作詳解:精通 MongoDB 的文件式 CRUD 與查詢
n8n 的 MongoDB
節點,將 MongoDB 的核心操作視覺化,讓你輕鬆上手。
Find
(查詢):- Operation:
Find
。 - Collection: 你要查詢的集合名稱(相當於 SQL 的 Table)。
- Query: 這是
WHERE
條件,你需要輸入一個 JSON 物件。例如,{ "country": "Taiwan" }
。 - Options: 你可以在這裡設定
sort
(排序),limit
(筆數限制),skip
(偏移) 等進階選項。
- Operation:
Insert
(新增):- Operation:
Insert
。 - Collection: 你要新增資料的集合名稱。
- Fields to Set / BSON:
- Fields to Set: 你可以逐一指定要新增的欄位與其值(支援 Expression)。
- BSON (推薦): 一個更快捷的方式是,直接將上一個節點傳來的整個 JSON 物件,作為要新增的文件。在 BSON 欄位中填入
{{ $json }}
即可。
- Operation:
Update
(更新):- Operation:
Update
。 - Query: 設定
WHERE
條件,告訴 n8n 要更新哪些文件。 - Update: 你要執行的更新操作。最常用的是使用
$set
運算子來修改特定欄位,例如:{ "$set": { "status": "completed" } }
。
- Operation:
實戰演練一 (寫入):建立一個 IoT 數據自動入庫的 Webhook 服務
這個案例完美展現了 MongoDB 彈性結構的優勢。
- 目標: 你的溫溼度感測器 (IoT Device) 會定時透過 Webhook,將環境數據以 JSON 格式發送到 n8n。你需要將這些數據即時存入 MongoDB 的
sensor_readings
集合中,無需在乎每次傳來的欄位是否完全一樣。 - 流程設計:
Webhook
->MongoDB
Webhook
節點:- 接收來自 IoT 設備的 POST 請求。假設它傳來的
body
是一個 JSON 物件,例如{"device_id": "TPE-01", "temperature": 28.5, "humidity": 65}
。
- 接收來自 IoT 設備的 POST 請求。假設它傳來的
MongoDB
節點:- Credential: 選擇你設定好的 MongoDB 憑證。
- Operation:
Insert
。 - Collection:
sensor_readings
。 - BSON:
{{ $json.body }}
。 - Options > Add Field >
Add Timestamp
: 將這個選項設為createdAt
。n8n 會自動為你新增一個包含當前時間的createdAt
欄位,非常方便。
啟用後,無論你的感測器未來升級,多傳了一個 pressure
(氣壓) 欄位,這個工作流都無需任何修改,就能自動將新的資料結構完整存入,這就是 NoSQL 的彈性之美!
實戰演練二 (讀取):打造「會員訂閱到期」自動提醒系統
- 目標: 每天檢查一次 MongoDB 的
subscriptions
集合,找出所有在未來 7 天內即將到期的會員,並為他們發送一封續訂提醒 Email。 - 流程設計:
Schedule
->MongoDB
->Send Email
Schedule
節點: 設定每天執行一次。MongoDB
節點:- Operation:
Find
。 - Collection:
subscriptions
。 - Query: 這裡我們需要一個比較複雜的日期查詢:JSON
{ "expiry_date": { "$gte": {{$now.startOf('day').toISO()}}, "$lt": {{$now.plus({days: 7}).endOf('day').toISO()}} }, "status": "active" }
- 解說: 這個查詢會找出
expiry_date
欄位介於「今天開始」和「7 天後的結束」之間,且狀態為active
的所有訂閱。
- 解說: 這個查詢會找出
- Operation:
Send Email
節點:- n8n 的自動迴圈機制會為每一筆查詢到的即將到期訂閱,都執行一次這個節點。
- To Address:
{{ $json.customer_email }}
- Subject:
重要通知:您的訂閱即將在 {{ $json.expiry_date }} 到期!
MongoDB 自動化最佳實踐與進階技巧
- 善用
Aggregate
操作: 當你需要進行複雜的資料處理,例如GROUP BY
、計算平均值、或多階段的資料轉換時,請使用Aggregate
操作。它讓你可以直接在 n8n 中,定義 MongoDB 強大的聚合管道 (Aggregation Pipeline),將複雜的運算交給資料庫在伺服器端完成,效能遠高於把所有原始資料拉回 n8n 再處理。 - 處理
ObjectId
: 從 MongoDB 讀取出的文件,其_id
是一個特殊的 ObjectId 物件,而不是單純的字串。如果你需要在後續步驟中,用這個 ID 去查詢,請確保使用{{ $json._id }}
來引用它。 - 建立索引 (Indexing): 如果你的
Find
操作經常根據某個欄位來查詢(例如email
),請務必在你的 MongoDB 資料庫中,為該欄位建立索引。這會讓你的查詢速度產生戲劇性的提升。

結語
n8n 與 MongoDB 的組合,為現代開發者提供了一套極其強大、靈活且高效的「低程式碼後端」解決方案。你不再需要在後端程式碼中,撰寫冗長的資料庫連線與查詢邏輯。透過 n8n 的視覺化介面,你可以直觀地設計出任何你需要的數據自動化流程。
從今天起,就將你 MongoDB 中沉睡的數據喚醒吧!無論是建立即時報表、同步跨系統資料,還是打造事件驅動的應用,n8n 都將是你最強大的夥伴,幫助你釋放 NoSQL 資料庫的無限潛能。
更多精選文章請參考
n8n 與 Zapier 比較:該選哪個?2025年最完整功能、費用、優缺點分析
開源自動化工具推薦:從工作流程到測試,找到最適合你的免費方案
n8n 發送 Email 超詳細教學:從 SMTP 設定到 Gmail 節點串接,一篇搞定!
n8n Notion 串接終極指南:2025 年打造自動化工作流程,效率翻倍!