MongoDB (プレビュー)
MongoDB は、開発者に愛され、さまざまなワークロードを実行するために企業間で使用される汎用の分散ドキュメント データ プラットフォームです。MongoDB コネクタを使用して、さまざまなエンドポイントを探索し、コレクションに対して CRUD 操作と集計を実行できるようになりました。
このコネクタは、次の製品とリージョンで使用できます。
| サービス | クラス | リージョン |
|---|---|---|
| コピロット スタジオ | Premium | 次を除くすべての Power Automate リージョン : - 米国政府 (GCC) - 米国政府 (GCC High) - 21Vianet が運営する China Cloud - 米国国防総省 (DoD) |
| ロジック アプリ | Standard | 次を除くすべての Logic Apps リージョン : - Azure Government リージョン - Azure China リージョン - 米国国防総省 (DoD) |
| Power Apps | - | 利用できません |
| Power Automate | Premium | 次を除くすべての Power Automate リージョン : - 米国政府 (GCC) - 米国政府 (GCC High) - 21Vianet が運営する China Cloud - 米国国防総省 (DoD) |
| お問い合わせ | |
|---|---|
| 名前 | MongoDB のサポート |
| URL | https://www.mongodb.com/community/forums/ |
| support-operations@mongodb.com |
| コネクタ メタデータ | |
|---|---|
| Publisher | MongoDB Corp |
| Website | 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 Data API を非推奨 にしたため、このコネクタ アプローチを使用して Azure 関数を設定し、アプリとフローの Atlas の代わりに URL と API キーを使用することに注意してください。 ***
[前提条件]
- Atlas 環境の構成
ここで新しい Atlas アカウントに登録 します。 1 から 4 の手順 (Atlas アカウントの作成、無料クラスターのデプロイ、IP アクセス リストへの IP の追加、データベース ユーザーの作成) に従って、Atlas 環境を設定します。
Atlas Data API として Azure 関数を設定 するAtlas Data API として機能するコードをホストする Azure 関数を設定するには、 1 という 2 つの オプションがあります 。GitHub Actions OR 2 の使用。Zip デプロイの使用
GitHub actions メソッドを選択します。現在のリポジトリをフォークできる場合は、そのリポジトリで GitHub アクションを有効にすることができ、さらに API を追加し、CI/CD または DevOps をすぐに設定できます。 ただし、迅速かつ簡単なデプロイ方法を探していて、Atlas Data API に代わる Azure 関数を設定するだけで済む場合は、Zip デプロイ オプションを使用します。
オプション 1: GitHub アクションを使用して Azure 関数を設定する
a.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 リポジトリ -> Settings -> Secrets and variables -> Actions Click New Respository secret and copy the entire value in your publishing profile to a new secret named "AZUREAPPSERVICE_PUBLISHPROFILE"
f. README と Commit Changes を少し変更して GitHub アクションを呼び出し、Python コードを Azure 関数に関数アプリにデプロイします。 これで、Functon アプリで使用できる関数と、デプロイfunction_app.pyコードが表示されます。
g. GitHub リポジトリの [GitHub actions]\(GitHub アクション\) タブには、デプロイの手順 (依存関係のインストールを含む) と各ステップの結果が表示されます。
オプション 2: ZipDeploy を使用して Azure 関数を設定する
a. 下の [ Deploy to Azure]\(Azure にデプロイ \) ボタンをクリックして、テナントに Azure 関数を作成します。
b。 Azure 関数とそれに関連するコンポーネント (App Service プラン、ストレージ アカウント、App Insights) を含むリソース グループを選択または作成します。 関数名と SKU を既定値のままにするか、特定の標準に従う場合は変更できます。 クラスター名を関数アプリ名に追加して、一意で識別しやすくすることを推奨しました。
デプロイする必要がある zip を含むストレージ アカウントの SAS URL であるため、** packageUrl を変更しないでください**。 [ 作成] を選択すると、Azure 関数アプリが作成され、関連付けられているリソースと共に Azure 関数がデプロイされます。
資格情報を取得する方法
BaseUrl と API キーを取得する
a. 関数アプリから関数を選択し、[関数 URL の取得 ] をクリックします。 次のスクリーンショットに示すように、関数の URL を最初から "/action" の前までコピーします。 これは、MongoDB CRUD/Aggregate API のいずれかを呼び出すために使用する ベース URL です。
b。 Function App -> Under Functions -> App キーに移動し、Azure 関数の_masterまたは既定の API キーを取得します。これは、MongoDB CRUD/Aggregate API を呼び出す MongoDB 接続を作成するためのベース URL と共に使用する API キーです。
コネクタの概要
- 前提条件が完了したら、PowerAutomate -> 接続に移動します。 次のスクリーンショットに示すように、[新しい接続] をクリックし、右上の検索バーで MongoDB を検索します。
- MongoDB 接続をクリックすると、API キーとベース URL の入力を求める次のポップアップが表示されます。
- [ベース URL] フィールドと [API キー] フィールドに、上記の「 資格情報を取得する方法 」セクションから取得した値を入力します。
MongoDB Atlas クラスターに対する CRUD 操作には、8 つのデータ API のいずれかを使用します。 複雑なクエリの場合は、"集計パイプラインの実行" 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 形式で提供されていることを確認します。 例については、この Postman コレクション を参照してください。 5XX エラーの場合は、Azure 関数が稼働していることを確認し、そのトレースを確認してさらに調査します。
接続を作成する
コネクタでは、次の認証の種類がサポートされています。
| デフォルト | 接続を作成するためのパラメーター。 | すべてのリージョン | 共有不可 |
デフォルト
適用対象: すべてのリージョン
接続を作成するためのパラメーター。
これは共有可能な接続ではありません。 電源アプリが別のユーザーと共有されている場合、別のユーザーは新しい接続を明示的に作成するように求められます。
| 名前 | タイプ | Description | 必須 |
|---|---|---|---|
| API キー | securestring | この API の API キー | 正しい |
| BaseUrl | 文字列 | Azure 関数の URL (例:https://mdb-dataapi-repl.azurewebsites.net/api/mdb_dataapi) | 正しい |
調整制限
| 名前 | 呼び出し | 更新期間 |
|---|---|---|
| 接続ごとの API 呼び出し | 100 | 60 秒 |
アクション
| ドキュメントの削除 |
1 つのドキュメントを削除するには、deleteOne エンドポイントを使用します。 検索条件を指定するには、要求本文のフィルター プロパティを使用します。 複数のドキュメントが条件に一致する場合、最初の一致のみが削除されます。 |
| ドキュメントの挿入 |
insertOne エンドポイントを使用すると、ドキュメントをコレクションに追加できます。 要求本文の document プロパティを使用して、作成するドキュメントを指定します。 |
| ドキュメントの更新 |
updateOne エンドポイントを使用して、1 つのレコードを更新できます。 検索条件を指定するには、要求本文のフィルター プロパティを使用します。 複数のドキュメントが条件に一致する場合は、最初の一致のみが返されます。 次に、更新フィールドを使用して、更新する必要がある内容を指定します。 ドキュメントを更新するには、更新演算子のいずれかを使用する必要があります。 |
| ドキュメントの検索 |
findOne エンドポイントを使用すると、コレクションから 1 つのドキュメントを取得できます。 検索条件を指定するには、要求本文のフィルター プロパティを使用します。 複数のドキュメントが条件に一致する場合は、最初の一致のみが返されます。 |
| 多数のドキュメントを削除する |
deleteMany を使用すると、複数のドキュメントを一度に削除できます。 filter プロパティを使用して、削除するドキュメントを指定します。 フィルターなしでこの API を使用すると、コレクション内のすべてのドキュメントが削除されることに注意してください。 deletemany は慎重に使用してください。 |
| 複数のドキュメントを挿入する |
insertMany エンドポイントを使用して、一度に複数のドキュメントを追加できます。 その場合は、要求の本文で documents プロパティを使用して、コレクションに挿入するドキュメントの配列を指定する必要があります。 |
| 複数のドキュメントを更新する |
updateMany を使用すると、要求の本文で指定された特定のフィルターに一致するすべてのドキュメントを更新できます。 更新フィールドの更新演算子のいずれかを使用して、ドキュメントを更新します。 |
| 複数のドキュメントを検索する |
検索エンドポイントを使用すると、一度に複数のドキュメントをフェッチできます。 要求の本文で filter プロパティを使用して、フィルター処理する条件を指定します。 空のオブジェクトを渡すと、コレクション内のすべてのドキュメントが返されます。 |
| 集計パイプラインの実行 |
データ API を使用して集計パイプラインを実行することもできます。 これを行うには、集計エンドポイントを使用し、要求本文のパイプライン フィールドにパイプラインを指定します。 |
ドキュメントの削除
1 つのドキュメントを削除するには、deleteOne エンドポイントを使用します。 検索条件を指定するには、要求本文のフィルター プロパティを使用します。 複数のドキュメントが条件に一致する場合、最初の一致のみが削除されます。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
MongoDB クラスター名
|
dataSource | True | string |
クラスターの名前です。 |
|
MongoDB データベース名
|
database | True | string |
データベースの名前。 |
|
MongoDB コレクション名
|
collection | True | string |
コレクションの名前。 |
|
フィルタ
|
filter | True | object |
MongoDB クエリ フィルター。 deleteOne アクションは、このフィルターに一致するコレクション内の最初のドキュメントを削除します。 |
戻り値
| 名前 | パス | 型 | 説明 |
|---|---|---|---|
|
deletedCount
|
deletedCount | integer |
deletedcount |
ドキュメントの挿入
insertOne エンドポイントを使用すると、ドキュメントをコレクションに追加できます。 要求本文の document プロパティを使用して、作成するドキュメントを指定します。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
MongoDB クラスター名
|
dataSource | True | string |
クラスターの名前です。 |
|
MongoDB データベース名
|
database | True | string |
データベースの名前。 |
|
MongoDB コレクション名
|
collection | True | string |
コレクションの名前。 |
|
ドキュメント
|
document | True | object |
コレクションに挿入する EJSON ドキュメント。 |
戻り値
| 名前 | パス | 型 | 説明 |
|---|---|---|---|
|
insertedId
|
insertedId | string |
insertedId |
ドキュメントの更新
updateOne エンドポイントを使用して、1 つのレコードを更新できます。 検索条件を指定するには、要求本文のフィルター プロパティを使用します。 複数のドキュメントが条件に一致する場合は、最初の一致のみが返されます。 次に、更新フィールドを使用して、更新する必要がある内容を指定します。 ドキュメントを更新するには、更新演算子のいずれかを使用する必要があります。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
MongoDB クラスター名
|
dataSource | True | string |
クラスターの名前です。 |
|
MongoDB データベース名
|
database | True | string |
データベースの名前。 |
|
MongoDB コレクション名
|
collection | True | string |
コレクションの名前。 |
|
フィルタ
|
filter | True | object |
MongoDB クエリ フィルター。UpdateOne アクションは、このフィルターに一致するコレクション内の最初のドキュメントを変更します。 |
|
アップデート
|
update | True | object |
一致するドキュメントを変更する方法を指定する MongoDB 更新式。 |
|
upsert
|
upsert | boolean |
Upsert フラグは、指定されたフィルターに一致するドキュメントがない場合にのみ適用されます。 true の場合、updateOne アクションは、指定した更新プログラムが適用されたフィルターに一致する新しいドキュメントを挿入します。 |
戻り値
| 名前 | パス | 型 | 説明 |
|---|---|---|---|
|
matchedCount
|
matchedCount | integer |
matchedcount |
|
modifiedCount
|
modifiedCount | integer |
modifiedcount |
ドキュメントの検索
findOne エンドポイントを使用すると、コレクションから 1 つのドキュメントを取得できます。 検索条件を指定するには、要求本文のフィルター プロパティを使用します。 複数のドキュメントが条件に一致する場合は、最初の一致のみが返されます。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
MongoDB クラスター名
|
dataSource | True | string |
クラスターの名前です。 |
|
MongoDB データベース名
|
database | True | string |
データベースの名前。 |
|
MongoDB コレクション名
|
collection | True | string |
コレクションの名前。 |
|
フィルタ
|
filter | object |
MongoDB クエリ フィルター。 findOne アクションは、このフィルターに一致するコレクション内の最初のドキュメントを返します。 |
|
|
プロジェクション
|
projection | object |
MongoDB クエリ プロジェクション。 プロジェクションに応じて、返されるドキュメントは特定のフィールドを省略するか、指定されたフィールドまたは値のみを含めます |
戻り値
| 名前 | パス | 型 | 説明 |
|---|---|---|---|
|
ドキュメント
|
document | object |
ドキュメント |
多数のドキュメントを削除する
deleteMany を使用すると、複数のドキュメントを一度に削除できます。 filter プロパティを使用して、削除するドキュメントを指定します。 フィルターなしでこの API を使用すると、コレクション内のすべてのドキュメントが削除されることに注意してください。 deletemany は慎重に使用してください。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
MongoDB クラスター名
|
dataSource | True | string |
クラスターの名前です。 |
|
MongoDB データベース名
|
database | True | string |
データベースの名前。 |
|
MongoDB コレクション名
|
collection | True | string |
コレクションの名前。 |
|
フィルタ
|
filter | True | object |
MongoDB クエリ フィルター。 deleteMany アクションは、このフィルターに一致するコレクション内のすべてのドキュメントを削除します。 |
戻り値
| 名前 | パス | 型 | 説明 |
|---|---|---|---|
|
deletedCount
|
deletedCount | integer |
deletedCount |
複数のドキュメントを挿入する
insertMany エンドポイントを使用して、一度に複数のドキュメントを追加できます。 その場合は、要求の本文で documents プロパティを使用して、コレクションに挿入するドキュメントの配列を指定する必要があります。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
MongoDB クラスター名
|
dataSource | True | string |
クラスターの名前です。 |
|
MongoDB データベース名
|
database | True | string |
データベースの名前。 |
|
MongoDB コレクション名
|
collection | True | string |
コレクションの名前。 |
|
書類
|
documents | object |
items |
戻り値
| 名前 | パス | 型 | 説明 |
|---|---|---|---|
|
insertedIds
|
insertedIds | array of string |
insertedIds |
複数のドキュメントを更新する
updateMany を使用すると、要求の本文で指定された特定のフィルターに一致するすべてのドキュメントを更新できます。 更新フィールドの更新演算子のいずれかを使用して、ドキュメントを更新します。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
MongoDB クラスター名
|
dataSource | True | string |
クラスターの名前です。 |
|
MongoDB データベース名
|
database | True | string |
データベースの名前。 |
|
MongoDB コレクション名
|
collection | True | string |
コレクションの名前。 |
|
フィルタ
|
filter | True | object |
MongoDB クエリ フィルター。 updateMany アクションは、このフィルターに一致するコレクション内のすべてのドキュメントを変更します。 |
|
アップデート
|
update | True | object |
一致するドキュメントを変更する方法を指定する MongoDB 更新式。 |
|
upsert
|
upsert | boolean |
upsert フラグは、指定されたフィルターに一致するドキュメントがない場合にのみ適用されます。 true の場合、updateMany アクションは、指定した更新プログラムが適用されたフィルターに一致する新しいドキュメントを挿入します。 |
戻り値
| 名前 | パス | 型 | 説明 |
|---|---|---|---|
|
matchedCount
|
matchedCount | integer |
matchedcount |
|
modifiedCount
|
modifiedCount | integer |
modifiedcount |
複数のドキュメントを検索する
検索エンドポイントを使用すると、一度に複数のドキュメントをフェッチできます。 要求の本文で filter プロパティを使用して、フィルター処理する条件を指定します。 空のオブジェクトを渡すと、コレクション内のすべてのドキュメントが返されます。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
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 |
一致したドキュメントを結果セットに追加する前にスキップする一致したドキュメントの数。 |
戻り値
| 名前 | パス | 型 | 説明 |
|---|---|---|---|
|
書類
|
documents | array of object |
書類 |
|
items
|
documents | object |
集計パイプラインの実行
データ API を使用して集計パイプラインを実行することもできます。 これを行うには、集計エンドポイントを使用し、要求本文のパイプライン フィールドにパイプラインを指定します。
パラメーター
| 名前 | キー | 必須 | 型 | 説明 |
|---|---|---|---|---|
|
MongoDB クラスター名
|
dataSource | True | string |
クラスターの名前です。 |
|
MongoDB データベース名
|
database | True | string |
データベースの名前。 |
|
MongoDB コレクション名
|
collection | True | string |
コレクションの名前。 |
|
パイプライン
|
pipeline | object |
items |
戻り値
| 名前 | パス | 型 | 説明 |
|---|---|---|---|
|
書類
|
documents | array of object |
書類 |
|
items
|
documents | object |