MongoDB (預覽版)
MongoDB 是一個通用的分佈式文檔數據平台,深受開發人員的喜愛,並在企業中用於運行各種工作負載。您現在可以使用 MongoDB 連接器探索各種端點,並在集合上執行 CRUD 操作和彙總。
此連接器適用於以下產品和區域:
| 服務 | Class | Regions |
|---|---|---|
| 副駕駛工作室 | 進階 | 除下列區域外的所有 Power Automate 區域 : - 美國政府 (GCC) - 美國政府(海灣合作委員會高中) - 由 21Vianet 營運的中國雲 - 美國國防部 (DoD) |
| 邏輯應用程式 | 標準 | 所有 Logic Apps 區域, 但下列區域除外: - Azure Government 區域 - Azure 中國區域 - 美國國防部 (DoD) |
| Power Apps | - | 無法提供 |
| Power Automate(自動化服務) | 進階 | 除下列區域外的所有 Power Automate 區域 : - 美國政府 (GCC) - 美國政府(海灣合作委員會高中) - 由 21Vianet 營運的中國雲 - 美國國防部 (DoD) |
| 連絡人 | |
|---|---|
| 名稱 | MongoDB 支援 |
| URL | https://www.mongodb.com/community/forums/ |
| support-operations@mongodb.com |
| 連接器中繼資料 | |
|---|---|
| Publisher | MongoDB公司 |
| 網站 | https://www.mongodb.com |
| 隱私策略 | https://www.mongodb.com/legal/privacy-policy |
| 類別 | 資料 |
MongoDB 連接器提供一種簡單的方法,透過租用戶中使用 Azure 函式裝載的資料 API 連線到 MongoDB Atlas,以讀取和寫入 MongoDB Atlas 集合的資料。 MongoDB 連接器可讓您在幾分鐘內輕鬆地對資料執行 CRUD 作業和彙總,並可讓您查詢 MongoDB 以在 Power Apps、Power Automate 和 Logic Apps 中建置豐富的應用程式和工作流程。
*** 請注意,MongoDB 從 2025 年 9 月起淘汰了 Atlas 資料 API ,因此使用此連接器方法來設定 Azure 函式,並在應用程式和流程中使用其 URL 和 API 金鑰,而不是 Atlas 的金鑰。 ***
先決條件
- 設定 Atlas 環境
在 此處註冊新的 Atlas 帳戶。 請遵循 1 到 4 的步驟 (建立 Atlas 帳戶、部署免費叢集、將您的 IP 新增至 IP 存取清單和建立資料庫使用者) 來設定 Atlas 環境。
將 Azure 函式設定為 Atlas 資料 API 若要設定 Azure 函式,以裝載程式碼以作為 Atlas 資料 API,我們有 兩個 選項 - 1。使用 GitHub Actions 或 2.使用 Zip Deploy
選擇 GitHub 動作方法,如果您能夠分支目前的存放庫,可以在該存放庫中啟用 GitHub 動作,而且您想要新增更多 API,並偏好現成設定 CI/CD 或 DevOps。 不過,如果您正在尋找快速簡便的部署方式,而且只需要設定 Azure 函式來取代 Atlas 資料 API,請使用 Zip 部署選項。
選項 1:使用 GitHub 動作設定 Azure 函式
a.Fork MongoDB 存放庫。 請注意新的 分叉存放庫 URL。 如果預設未啟用 GitHub 動作,請移至分支存放庫中的 [設定] -> [動作] -> [一般 ],然後選取其中一個 [允許動作/可重複使用的工作流程] 選項來啟用它們。
b.按一下下方的 [部署至 Azure ] 按鈕,以在您的租用戶中建立 Azure 函式。
c. 選取或建立您的資源群組,其中包含 Azure 函式及其相關聯的元件 (App Service 方案、儲存體帳戶和 App Insights)。 您可以將函式名稱和 SKU 保留為預設值,或者如果您想遵循某些特定標準,也可以進行變更。 建議您將叢集名稱新增至函式應用程式名稱,使其唯一且易於識別。
提供此 Azure 函式將執行之叢集的 MongoDB 連線 URL。 此連接字串將儲存為 Environmnet 變數。 將分支存放庫 URL 提供為 GitHub 存放庫。 選取 [ 建立 ],它會使用相關聯的資源建立 Azure 函式。 請注意,在此階段會建立函式應用程式,填入 env 變數,但實際函式尚未部署至函式應用程式。
d. 若要讓 GitHub 動作從存放庫執行並部署函式,請從您建立的 Azure 函式取得發佈配置檔。
它被下載,在文本編輯器中打開它並複製其所有內容。
e. 移至 GitHub 存放庫 -> 設定 -> 密碼和變數 -> 動作按一下 [新增存放庫密碼],並將發佈設定檔中的整個值複製到名為「AZUREAPPSERVICE_PUBLISHPROFILE」的新密碼
f. 在 [README] 和 [認可變更] 中進行次要變更,以叫用 GitHub 動作,以將 Python 程式碼部署至 Azure 函式,並部署至函式應用程式。 現在您應該會看到 Functon 應用程式中可用的函數,以及已部署function_app.py中的程式碼。
g。 GitHub 存放庫中的 GitHub 動作索引標籤會顯示部署中的步驟 (包括相依性安裝) 和每個步驟的結果。
選項 2:使用 ZipDeploy 設定 Azure 函式
一。 按一下下方的 [部署至 Azure ] 按鈕,以在您的租用戶中建立 Azure 函式。
b。 選取或建立您的資源群組,其中包含 Azure 函式及其相關聯的元件 (App Service 方案、儲存體帳戶和 App Insights)。 您可以將函式名稱和 SKU 保留為預設值,或者如果您想遵循某些特定標準,也可以進行變更。 建議您將叢集名稱新增至函式應用程式名稱,使其唯一且易於識別。
請 ** 請勿變更 ** packageUrl,因為它是儲存體帳戶的 SAS URL,具有需要部署的 zip。 選取 [ 建立 ],它會建立 Azure 函式應用程式,部署 Azure 函式以及相關聯的資源。
如何取得認證
取得 BaseUrl 和 API 金鑰
一。 從函式應用程式中,選取您的函式,然後按一下 [取得函式 URL ] 。 從開頭複製函數 url 到“/action”之前,如下面的屏幕截圖所示。 這是您將用來叫用任何 MongoDB CRUD/聚合 API 的基本 URL 。
b。 移至 [函式應用程式 -> 在 [函式 -> 應用程式金鑰] 底下,擷取 Azure 函式的 _master 或預設 API 金鑰這是您要與基底 URL 搭配使用的 API 金鑰,以建立 MongoDB 連線,以叫用任何 MongoDB CRUD/彙總 API。
開始使用連接器
- 完成必要條件之後,請移至 PowerAutomate -> 連線。 點擊“新建連接”,在右上角的搜尋欄中搜尋MongoDB,如下圖所示。
- 單擊 MongoDB 連接,您會看到以下彈出窗口,要求輸入 API 密鑰和基 URL。
- 針對「基本 URL」和「API 金鑰」欄位,輸入從上述 如何取得認證 一節擷取的值
使用 8 個資料 API 之一,針對 MongoDB Atlas 叢集進行任何 CRUD 作業。 對於複雜的查詢,請使用「執行彙總管線」API 來使用彙總階段將輸出從一個階段按摩到另一個階段。 MongoDB 的靈活性和活力使您能夠創建豐富的應用程式並自動化任何耗時的流程。 您可以通過將更多功能和字段添加到同一集合來不斷增強應用程序。
已知問題與限制
由於 MongoDB 不會強制執行結構描述,因此目前的連接器只能與 Power Automate 和 Logic Apps 搭配使用,這支援 API 回應的動態結構描述,然後可以使用「剖析 JSON」建構進行剖析。 它可以透過為每個 MongoDB 互動呼叫 Power Automate 流程來在 Power Apps 中使用。 您也可以繼續使用 Microsoft Github 存放庫 中經過認證的 MongoDB 連接器做為自訂連接器,以直接在 Power Apps 中使用它,以根據您的 MongoDB 集合結構描述自訂回應結構描述。
適用於 MongoDB 資料作業的限制也適用於 MongoDB 連接器。 請參閱此 連結 ,以進一步瞭解資料API的使用者內容下不支援的彙總階段。
請遵循此 連結 ,以取得 Azure 函式的已知限制,例如每個資源方案的逾時和其他服務限制。
常見錯誤和補救措施
典型的 API 回應代碼也適用於此。 任何 4XX 錯誤都表示用戶端的請求有問題。 請確定 dataSource、資料庫、集合以有效的 JSON 格式提供。 有關示例,請參閱此 郵差合集 。 針對 5XX 錯誤,請確定 Azure 函式已啟動並執行,並檢查其追蹤以進一步調查。
正在建立連線
連接器支援下列驗證類型:
| 預設值 | 建立連線的參數。 | 所有區域 | 不可共享 |
預設
適用:所有地區
建立連線的參數。
這不是可共用的連線。 如果 Power App 與其他使用者共用,系統會明確提示其他使用者建立新連線。
| 名稱 | 類型 | Description | 為必填項目 |
|---|---|---|---|
| API 金鑰 | securestring | 此 API 的 API 金鑰 | 對 |
| 基底網址 | 字串 | Azure 函式 URL (範例:https://mdb-dataapi-repl.azurewebsites.net/api/mdb_dataapi) | 對 |
節流限制
| 名稱 | 呼叫 | 續約期間 |
|---|---|---|
| 每個連線的 API 呼叫 | 100 | 60 秒 |
動作
| 刪除文件 |
若要刪除單一文件,請使用 deleteOne 端點。 使用要求本文中的 filter 內容來指定搜尋準則。 如果多個文件符合條件,則只會刪除第一個相符項。 |
| 刪除許多文件 |
您可以使用 deleteMany 一次刪除多個文件。 使用 filter 內容來指定要刪除的文件。 請注意,在沒有任何過濾器的情況下使用此 API 將刪除集合中的所有文件。 請謹慎使用 deletemany。 |
| 執行彙總管線 |
您甚至可以使用資料 API 執行彙總管線。 若要這樣做,請使用彙總端點,並在請求內文的管線欄位中指定您的管線。 |
| 尋找多個文件 |
使用尋找端點,您可以一次擷取多個文件。 使用要求內文中的 filter 內容來指定要篩選的準則。 如果您傳遞空物件,則會傳回集合中的所有文件。 |
| 尋找文件 |
使用 findOne 端點可讓您從集合中擷取單一檔案。 使用要求本文中的 filter 內容來指定搜尋準則。 如果多個文件符合條件,則只會傳回第一個相符項。 |
| 插入多個文件 |
您可以使用 insertMany 端點一次新增多個文件。 在此情況下,您必須在要求內文中使用 documents 屬性來指定您要插入集合的文件陣列。 |
| 插入文件 |
使用 insertOne 端點,您可以將文件新增至集合。 使用要求內文中的 document 屬性來指定應該建立的文件。 |
| 更新多個文件 |
使用 updateMany,您可以更新符合要求內文中指定之特定過濾器的所有文件。 使用更新欄位中的其中一個更新運算子來更新您的文件。 |
| 更新文件 |
您可以使用 updateOne 端點來更新單一記錄。 使用要求本文中的 filter 內容來指定搜尋準則。 如果多個文件符合條件,則只會傳回第一個相符項。 然後使用更新欄位來指定應該更新的內容。 您應該使用其中一個更新運算子來更新文件。 |
刪除文件
若要刪除單一文件,請使用 deleteOne 端點。 使用要求本文中的 filter 內容來指定搜尋準則。 如果多個文件符合條件,則只會刪除第一個相符項。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
MongoDB 叢集名稱
|
dataSource | True | string |
叢集的名稱。 |
|
MongoDB 資料庫名稱
|
database | True | string |
資料庫的名稱。 |
|
MongoDB 集合名稱
|
collection | True | string |
集合的名稱。 |
|
篩選
|
filter | True | object |
MongoDB 查詢篩選器。 deleteOne 動作會刪除集合中符合此篩選器的第一個文件。 |
傳回
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
已刪除計數
|
deletedCount | integer |
已刪除計數 |
刪除許多文件
您可以使用 deleteMany 一次刪除多個文件。 使用 filter 內容來指定要刪除的文件。 請注意,在沒有任何過濾器的情況下使用此 API 將刪除集合中的所有文件。 請謹慎使用 deletemany。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
MongoDB 叢集名稱
|
dataSource | True | string |
叢集的名稱。 |
|
MongoDB 資料庫名稱
|
database | True | string |
資料庫的名稱。 |
|
MongoDB 集合名稱
|
collection | True | string |
集合的名稱。 |
|
篩選
|
filter | True | object |
MongoDB 查詢過濾器 . deleteMany 動作會刪除集合中符合此過濾器的所有文件。 |
傳回
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
已刪除計數
|
deletedCount | integer |
已刪除計數 |
執行彙總管線
您甚至可以使用資料 API 執行彙總管線。 若要這樣做,請使用彙總端點,並在請求內文的管線欄位中指定您的管線。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
MongoDB 叢集名稱
|
dataSource | True | string |
叢集的名稱。 |
|
MongoDB 資料庫名稱
|
database | True | string |
資料庫的名稱。 |
|
MongoDB 集合名稱
|
collection | True | string |
集合的名稱。 |
|
準銷售案源
|
pipeline | object |
items |
傳回
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
檔
|
documents | array of object |
檔 |
|
items
|
documents | object |
尋找多個文件
使用尋找端點,您可以一次擷取多個文件。 使用要求內文中的 filter 內容來指定要篩選的準則。 如果您傳遞空物件,則會傳回集合中的所有文件。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
MongoDB 叢集名稱
|
dataSource | True | string |
叢集的名稱。 |
|
MongoDB 資料庫名稱
|
database | True | string |
資料庫的名稱。 |
|
MongoDB 集合名稱
|
collection | True | string |
集合的名稱。 |
|
篩選
|
filter | object |
MongoDB 查詢篩選器。尋找動作會傳回集合中符合此篩選器的文件。如果您未指定篩選器,則動作會比對集合的所有文件。 |
|
|
投影
|
projection | object |
MongoDB 查詢投影。視投影而定,傳回的文件會省略特定欄位,或只包含指定的欄位和值。 |
|
|
排序
|
sort | object |
MongoDB 排序運算式。 相符的文件會以運算式中指定欄位的遞增或遞減順序傳回。 |
|
|
limit
|
limit | integer |
要包含在傳回結果集中的相符文件數目上限。 每個請求最多可以返回 50,000 個文件。 |
|
|
略過
|
skip | integer |
在將相符的文件新增至結果集之前,要略過的相符文件數目。 |
傳回
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
檔
|
documents | array of object |
檔 |
|
items
|
documents | object |
尋找文件
使用 findOne 端點可讓您從集合中擷取單一檔案。 使用要求本文中的 filter 內容來指定搜尋準則。 如果多個文件符合條件,則只會傳回第一個相符項。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
MongoDB 叢集名稱
|
dataSource | True | string |
叢集的名稱。 |
|
MongoDB 資料庫名稱
|
database | True | string |
資料庫的名稱。 |
|
MongoDB 集合名稱
|
collection | True | string |
集合的名稱。 |
|
篩選
|
filter | object |
MongoDB 查詢篩選器。 findOne 動作會傳回集合中符合此篩選器的第一個文件。 |
|
|
投影
|
projection | object |
MongoDB 查詢投影。 根據投影,傳回的文件將省略特定欄位或僅包含指定的欄位或值 |
傳回
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
文件
|
document | object |
文件 |
插入多個文件
您可以使用 insertMany 端點一次新增多個文件。 在此情況下,您必須在要求內文中使用 documents 屬性來指定您要插入集合的文件陣列。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
MongoDB 叢集名稱
|
dataSource | True | string |
叢集的名稱。 |
|
MongoDB 資料庫名稱
|
database | True | string |
資料庫的名稱。 |
|
MongoDB 集合名稱
|
collection | True | string |
集合的名稱。 |
|
檔
|
documents | object |
items |
傳回
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
insertedIds
|
insertedIds | array of string |
insertedIds |
插入文件
使用 insertOne 端點,您可以將文件新增至集合。 使用要求內文中的 document 屬性來指定應該建立的文件。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
MongoDB 叢集名稱
|
dataSource | True | string |
叢集的名稱。 |
|
MongoDB 資料庫名稱
|
database | True | string |
資料庫的名稱。 |
|
MongoDB 集合名稱
|
collection | True | string |
集合的名稱。 |
|
文件
|
document | True | object |
要插入到集合中的 EJSON 文件。 |
傳回
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
插入標識符
|
insertedId | string |
插入標識符 |
更新多個文件
使用 updateMany,您可以更新符合要求內文中指定之特定過濾器的所有文件。 使用更新欄位中的其中一個更新運算子來更新您的文件。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
MongoDB 叢集名稱
|
dataSource | True | string |
叢集的名稱。 |
|
MongoDB 資料庫名稱
|
database | True | string |
資料庫的名稱。 |
|
MongoDB 集合名稱
|
collection | True | string |
集合的名稱。 |
|
篩選
|
filter | True | object |
MongoDB 查詢過濾器 . updateMany 動作會修改集合中符合此篩選條件的所有文件。 |
|
更新
|
update | True | object |
MongoDB 更新運算式,指定如何修改相符的文件。 |
|
upsert
|
upsert | boolean |
只有在沒有任何文件符合指定的過濾器時,才會套用更新插入旗標。 如果為true,則updateMany動作會插入符合篩選器的新文件,並套用了指定的更新。 |
傳回
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
matchedCount
|
matchedCount | integer |
matchedcount |
|
修改計數
|
modifiedCount | integer |
修改計數 |
更新文件
您可以使用 updateOne 端點來更新單一記錄。 使用要求本文中的 filter 內容來指定搜尋準則。 如果多個文件符合條件,則只會傳回第一個相符項。 然後使用更新欄位來指定應該更新的內容。 您應該使用其中一個更新運算子來更新文件。
參數
| 名稱 | 機碼 | 必要 | 類型 | Description |
|---|---|---|---|---|
|
MongoDB 叢集名稱
|
dataSource | True | string |
叢集的名稱。 |
|
MongoDB 資料庫名稱
|
database | True | string |
資料庫的名稱。 |
|
MongoDB 集合名稱
|
collection | True | string |
集合的名稱。 |
|
篩選
|
filter | True | object |
MongoDB 查詢篩選器。UpdateOne 動作會修改集合中符合此篩選器的第一個文件。 |
|
更新
|
update | True | object |
MongoDB 更新運算式,指定如何修改相符的文件。 |
|
upsert
|
upsert | boolean |
只有在沒有文件符合指定的過濾器時,才會套用更新插入旗標。 如果為true,則updateOne動作會插入符合篩選器的新文件,並套用了指定的更新。 |
傳回
| 名稱 | 路徑 | 類型 | Description |
|---|---|---|---|
|
matchedCount
|
matchedCount | integer |
matchedcount |
|
修改計數
|
modifiedCount | integer |
修改計數 |