MongoDB Connector のバージョン 6.x へのアップグレードおよび移行 - Mule 4

MongoDB 用 Anypoint Connector (MongoDB Connector) をバージョン 5.3 からバージョン 6.x.x にアップグレードします。

サポートされているアップグレードパス

開始バージョン 終了バージョン

5.3.x

6.x.x

このリリースでの変更

MongoDB 6.x.x には、次の変更が含まれています。

  • 接続種別および設定の変更

  • 操作名、メタデータ、項目、値の変更

  • 入力元の変更

  • 使用する MongoDB Java ドライバーを指定する機能の追加

  • 実行時に次の操作のグローバル要素内の ​[Write concern acknowledgement (書き込みの問題の肯定応答)]​ および ​[Write concern timeout (書き込みの問題のタイムアウト)]​ 項目を上書きできます。

    • Find documents

    • Insert document

    • Insert documents

    • Update Documents

    • Count documents 操作

接続種別および設定の変更

MongoDB 6.x には、接続種別および設定の次の変更が含まれています。

  • [Connection String (接続文字列)] 接続種別の削除 (これは、MongoDB Atlas をサポートするために 6.3.0 バージョンで再導入されました)

  • [Metadata configuration (メタデータ設定)] セクションの削除

    MongoDB では、メタデータが自動的に生成されます。

[Advanced (詳細)] タブの設定

次の変更は、必要に応じてグローバル設定の ​[Advanced (詳細)]​ タブに適用されます。

  • 次の [read concern (読み取りの問題)] オプションが追加されました。

    • Read concern (読み取りの問題): レプリカセットやレプリカセットシャードから読み込まれたデータの一貫性および分離プロパティを制御できます。

    • Read preference (読み取り設定): この接続の読み取り設定を指定します。

    • Maximum staleness seconds (最大期限 (秒)): クライアントが読み取り操作でセカンダリ MongoDB クラスターを使用しなくなるまでの期限を指定します。

      値 -1 は最大期限のしきい値がないことを意味します。

    • Read preference tags (読み取り設定タグ): 読み取り設定でタグセットを指定して、セットのタグに関連付けられているメンバーを対象にすることができます。

  • 次の [write concern (書き込みの問題)] オプションが追加されました。

    • Write concern acknowledgment (書き込みの問題の肯定応答): 書き込み操作が指定の数のインスタンスに伝播されたことの肯定応答を要求します。

    • Write concern timeout (書き込みの問題のタイムアウト): [write concern (書き込みの問題)] の時間制限を指定します。

    • Write concern timeout timeunit (書き込みの問題のタイムアウト時間単位): [Write concern timeout (書き込みの問題のタイムアウト)] 項目の時間制限を指定します。

[Connection (接続)] セクション

次の変更は、グローバル設定の ​[Connection (接続)]​ セクションのタブに適用されます。

  • [General (一般)] タブへの次の項目の追加

    • Required Libraries (必須のライブラリ): MongoDB ドライバーへの参照。バージョンは 3.11 以降である必要があります。

    • Server Addresses: (サーバーアドレス): この項目は、接続で使用するサーバーアドレスのリストになりました。

  • 省略可能な TLS コンテキスト設定の [Security (セキュリティ)] タブの追加。

  • [Advanced (一般)] タブへの次の省略可能な項目の追加

    • Authentication mechanism (認証メカニズム): この接続で使用される認証メカニズム。

    • Replica set name (レプリカセット名): 接続するレプリカセットの名前。

    • Authentication source (認証ソース): ユーザーのログイン情報に関連付けられているデータベース名。

    • Compressors (圧縮ツール): クライアントと mongod/mongos インスタンス間の通信のネットワーク圧縮を有効にする圧縮ツールのリスト。

    • Zlib compression level (Zlib 圧縮レベル): zlib を使用してネットワークを圧縮する場合の圧縮レベルを指定する整数。

      この項目には、圧縮しない場合は 0、圧縮する場合は 1 ~ 9 (最低~最高) の圧縮レベルを設定します。圧縮レベルが高いほど、処理時間が長くなります。

    • Connection timeout (接続タイムアウト): ソケット接続を確立する場合に使用するタイムアウト。

    • Connection timeout time unit (接続タイムアウト時間単位): [Connection timeout (接続タイムアウト)] 項目の時間単位。

    • Local threshold (ローカルしきい値): 複数の適切な MongoDB インスタンスの中から選択する場合のレイテンシー期間のサイズ。

    • Local threshold time unit (ローカルしきい値時間単位): [Local threshold (ローカルしきい値)] 項目の時間単位。

    • Server selection timeout (サーバー選択タイムアウト): 例外をスローするまでのサーバー選択のブロック期間。

    • Server selection timeout time unit (サーバー選択タイムアウト時間単位): [Server selection timeout (サーバー選択タイムアウト)] 項目の時間単位。

    • Socket timeout (ソケットタイムアウト): 試行のタイムアウトまでのソケットの送受信操作の最大待機時間。

    • Socket timeout unit (ソケットタイムアウト単位): [Socket timeout (ソケットタイムアウト)] 項目の時間単位。

    • Min connection pool size (最小接続プールサイズ): 接続プールの最小サイズ。

    • Max connection pool size (最大接続プールサイズ): 接続プールの最大サイズ。

    • Max wait queue time (最大待機キュー時間): 接続プールの最大待機キュー時間。

    • Max wait queue time unit (最大待機キュー時間単位): [Maximum wait queue time (最大待機キュー時間)] 項目の時間単位。

    • Max connection life time (最大接続有効期間): 接続プールの最大接続有効期間。

    • Max connection life time time unit (最大接続有効期間時間単位): [Maximum connection life time (最大接続有効期間)] 項目の時間単位。

    • Max connection idle time (最大接続アイドル時間): 接続プールの最大接続アイドル時間。

    • Max connection idle time unit (最大接続アイドル時間単位): [Maximum connection idle time (最大接続アイドル時間)] 項目の時間単位。

操作、パラメーター、戻り値のデータ型の変更

次の表に、操作名、入力パラメーター、戻り値のデータ型の変更を示します。

MongoDB 5.x 操作 MongoDB 6.0 の変更

Count documents

入力パラメーターが次のようになりました。

  • Collection name​ (String)

  • Query​ (JSON)

戻り値のデータ型が Long (ロング) になりました。これには、件数の結果が含まれます。

Create Collection

入力パラメーターが次のようになりました。

  • Collection name​ (String)

  • Max objects​ (Integer)

  • Collection size​ (Integer)

  • Collection size data unit​ (TimeUnit)

Exists collection

操作名が Collection exists に変更されました。

Create file from payload

  • 操作名が Create file に変更されました。

  • 戻り値のデータ型が JSON になりました。

Create index

入力パラメーターが次のようになりました。

  • Collection name​ (String)

  • Field name​ (String)

  • Sort order​ (列挙: ASC または DESC)

Dump

入力パラメーターが次のようになりました。

  • Output directory​ (String)

  • Output name prefix​ (String)

  • Oplog​ (変更なし)

  • Operation timeout​ (Integer)

  • Operation timeout unit​ (TimeUnit)

戻り値のデータ型が List<String> 型になりました。これは、作成したファイルを参照します。各文字列は filePath 型です。

Execute command

  • 入力パラメーターは ​Command​ (JSON) です。

  • 戻り値のデータ型が JSON 型になりました。これには、コマンドの結果が含まれます。

Find documents

入力パラメーターが次のようになりました。

  • Collection name​ (String)

  • Query​ (JSON)

  • Fields​ (String)

  • Sort by​ (JSON)

  • Page size​ (Integer)

  • Limit​ (Integer)

この操作ではページ設定がサポートされています。各項目は JSON 型として返されます。

Find files

  • 入力パラメーターが次のようになりました。

    • Query​ (JSON)

    • Sort​ (JSON)

  • 戻り値のデータ型が JSON リストになりました。

Get file content

  • 入力パラメーターが ​File id​ (JSON) になりました。

  • バイナリファイルのコンテンツの戻り値のデータ型が stream (ストリーム) になりました。この操作は、属性としてファイル情報も返します。

Insert document

戻り値のデータ型が完全な JSON オブジェクトになりました。これには、作成済みドキュメントの ​_id​ オブジェクトが含まれます。

Insert documents

戻り値のデータ型が Bulk Operation Result (一括操作結果) になりました。これには、作成された各レコードとその状況がリストされる JSON ファイルが含まれます。

List collections

戻り値のデータ型が List<String> 型になりました。これには、コレクションの名前が含まれます。

List indices

操作名が List indexes に変更されました。

Map reduce objects

  • 操作名が Map reduce に変更されました。

  • 戻り値のデータ型が JSON 型になりました。これは、縮約関数で指定された出力を表します。

Remove documents

  • 入力パラメーターが次のようになりました。

    • Collection name​ (String)

    • Query​ (JSON)

  • 戻り値のデータ型が Long (ロング) になりました。これには、件数の結果が含まれます。

Remove files

入力パラメーターが ​File id​ (JSON) になりました。

Update documents

  • 入力パラメーターが次のようになりました。

    • Collection name​ (String)

    • Query​ (JSON)

    • Content to update​ (JSON)

    • Multiple update​ (Boolean (ブール): [Advanced (詳細)] タブに移動)

    • Upsert​ (Boolean)

  • 戻り値のデータ型が JSON 型になりました。これには、次の構造が含まれます。

    • Int (整数) 型の Matched

    • Int (整数) 型の Modified

    • String (文字列) 型の Upserted Id

操作のメタデータの変更

MongoDB 5.x では、ユーザーが属性の取得元のコレクションごとにドキュメントセットを指定すると、操作のメタデータが生成されました。MongoDB 6.0 では、各コレクションの最新のドキュメントに基づいてメタデータが自動的に生成されます。

MongoDB v6.0 のメタデータ

操作名 入力メタデータ 出力メタデータ

Insert Document

Document (ドキュメント)

選択したコレクションパラメーターの値に基づいて動的に解決されます。コネクタは、指定したコレクションの最新のドキュメントを追加し、ドキュメントの構造を入力/出力メタデータとして使用します。

Insert Documents

Document (ドキュメント)

選択したコレクションパラメーターの値に基づいて動的に解決されます。コネクタは、指定したコレクションの最新のドキュメントを追加し、ドキュメントの構造を入力/出力メタデータとして使用します。

Update Documents

適用なし

次の構造が含まれる JSON。

  • Int (整数) 型の Matched

  • Int (整数) 型の Modified

  • JSON 型の upsertedId

Remove Documents

クエリ: JSON オブジェクト

適用なし

Count Documents

クエリ: JSON オブジェクト

適用なし

Find Documents

クエリ: JSON オブジェクト

選択したコレクションパラメーターの値に基づいて動的に解決されます。コネクタは、指定したコレクションの最新のドキュメントの構造を使用します。

Create File

適用なし

次の属性が含まれる JSON オブジェクト。

  • JSON 型の Id

  • String (文字列) 型の fileName

  • Long (ロング) 型の Length

  • Int (整数) 型の ChunkSize

  • Datetime 型の uploadDate

  • JSON 型の Metadata

Find Files

適用なし

次の属性が含まれる JSON オブジェクトのリスト。

  • JSON 型の Id

  • String (文字列) 型の fileName

  • Long (ロング) 型の Length

  • Int (整数) 型の ChunkSize

  • Datetime 型の uploadDate

  • JSON 型の Metadata

削除された操作

次の操作は、MongoDB Connector から削除されました。

MongoDB 5.x から削除された操作 MongoDB 6.0.0 で再現するときに使用する操作

名前

説明

名前

説明

Incremental dump

データベースの増分ダンプを実行します。

Dump

Dump 操作を使用します。

Restore

ダンプから出力を取り出して復元します。

Restore from file または Restore from directory

Restore from file または Restore from directory は、ダンプファイルまたはディレクトリから出力を取り出して復元します。

Update documents by function

Mongo 関数を使用してドキュメントを更新します。

適用なし

適用なし

Update documents by functions

1 つ以上の Mongo 関数を使用してドキュメントを更新します。

適用なし

適用なし

Find one and update document

指定したクエリに一致する最初のドキュメントを検索して更新します。

適用なし

この操作の関数は、他の操作を組み合わせて再現できます。

たとえば、ドキュメントを 1 つに制限して Find documents 操作を呼び出し、返されたドキュメントの ID を使用して Update documents 操作を呼び出すことができます。

Save document

オブジェクト ID に基づいてドキュメントを挿入または更新します。

適用なし

適用なし

Find one document

指定したクエリに一致する最初のドキュメントを検索します。

Find documents

1 つのドキュメントを返すには、Limit=1 を設定します。

Execute generic command

データベースで汎用コマンドを実行します。

Execute command

データベースでコマンドを実行します。

List files

指定したクエリに一致するすべてのファイルをリストし、ファイル名順に並び替えます。

適用なし

適用なし

Find one file

指定したクエリに一致する最初のファイルを返します。

Find files

照会する特定のファイルを指定します。

入力元の変更

MongoDB 6.0.0 には、Object Listener という 1 つの入力元があり、特定のコレクションに属するすべての作成済みドキュメントを取得します。

Delete Sources および Update Sources 入力元は削除されました。

Object Listener のメタデータ

入力メタデータ 出力メタデータ

適用なし

コネクタは、[Collection Name (コレクション名)] パラメーターの選択した値に基づいて出力メタデータを動的に解決します。コネクタは、指定したコレクションの最新のドキュメントを読み取り、ドキュメントの構造を出力メタデータとして使用します。

要件と制限事項

ソフトウェア バージョン

Mule

4.1.1 以降

MongoDB

MongoDB Java ドライバー 3.11 以降

アップグレード前提条件

アップグレードを実行する前に、次の作業を行う必要があります。

  1. 以前のバージョンに復元する必要がある場合に備えて、ファイル、データ、設定のバックアップを作成します。

  2. MongoDB v6.0 をインストールし、以前に MongoDB Connector v5.x に含まれていた MongoDB 操作を置き換えます。

アップグレード手順

MongoDB Connector v5.3.x から MongoDB Connector v6.0 にアップグレードする手順は、次のとおりです。

  1. Anypoint Studio で、Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)] ビューで、​[Search in Exchange (Exchange 内を検索)]​ をクリックします。

  3. [Add Dependencies to Project (連動関係をプロジェクトに追加)]​ ウィンドウで、検索項目に「​MongoDB​」と入力します。

  4. [Available modules (使用可能なモジュール)]​ セクションで、​[MongoDB Connector]​ を選択し、​[Add (追加)]​ をクリックします。

  5. [Finish (完了)]​ をクリックします。

  6. Mule プロジェクトの ​pom.xml​ ファイルで salesforce-connector 連動関係のバージョンが 6.0.0 であることを確認します。

Studio はコネクタを自動的にアップグレードします。

アップグレードを確認する

コネクタの最新バージョンをインストールしたら、次の手順に従ってアップグレードを確認します。

  1. Studio の ​[Problems (問題)]​ または ​[Console (コンソール)]​ ビューでエラーがないことを確認します。

  2. プロジェクトの ​pom.xml​ ファイルをチェックして、問題がないことを確認します。

  3. 接続をテストして、操作が機能することを確認します。

トラブルシューティング

パラメーターおよびメタデータのキャッシュに問題がある場合は、Studio を再起動してください。

アップグレードの復元

以前のバージョンの MongoDB Connector に戻す必要がある場合、プロジェクトの ​pom.xml​ の mule-mongodb-connector 連動関係バージョン 6.0.0 を前のバージョンに変更します。