クライアントレベルのCRUD設定を構成する
項目一覧
Overview
このガイドでは、 Javaドライバーを使用して MongoClient
インスタンスのCRUD操作を構成する方法について説明します。
読み込み設定(read preference ) 、 読み取り保証( read concern ) 、 書込み保証( write concern ) は、MongoDB レプリカセットに接続するときに、ドライバーが読み取り操作をルーティングして読み取りおよび書込み操作の確認を待つ方法を制御します。 読み込み設定(read preference)と読み取り保証(read concern)はすべての読み取り操作に適用されます。書込み保証 (write concern) はすべての書込み (write) 操作に適用されます。
詳しくは、 の 読み込み設定(read preference) 、 読み取り保証(read concern) 、 書込み保証(write concern) に関するサーバーのドキュメントを参照してください。
MongoDatabase
インスタンスと MongoCollection
インスタンスは、それらにアクセスする MongoClient
から環境設定と懸念事項を継承します。ただし、データベースとコレクションにカスタム設定を適用できます。詳細については、カスタムCRUD設定の構成ページを参照してください。
接続文字列を使用するか、MongoClients コンストラクターに MongoClientSettings
オブジェクトを渡すことで、クライアントレベルのCRUD設定を指定できます。使用可能なオプションを確認するには、Connection String タブまたは MongoClientSettingsタブを選択します。
ドライバーの読み取りまたは書込み動作を変更するには、次のパラメーターを接続文字列に含めます。
オプション名 | タイプ | 説明 |
---|---|---|
| ブール値 | 接続された MongoDB インスタンスがすべての書き込みに対してディスク上のジャーナル ファイルにグループ コミットするまで、ドライバーが待機する必要があることを指定します。 デフォルト: |
| string or integer | 書込み保証 (write concern)を指定します。値の詳細については、w オプション のMongoDB Server のドキュメントを参照してください。 デフォルト: |
| integer | 書込み保証 (write concern)の時間制限をミリ秒単位で指定します。詳細については、 MongoDB Server のドキュメントの wtimeoutMS オプション を参照してください。値が デフォルト: |
| string | 読み込み設定 (read preference)を指定します。値の詳細については、readPreference オプションのMongoDB Server のドキュメントを参照してください。 デフォルト: |
| string | 読み込み設定 (read preference)タグを指定します。値の詳細については、readPreferenceTags オプションのMongoDB Server のドキュメントを参照してください。 デフォルト: |
| integer | ドライバーがセカンダリとの通信を停止する前に、セカンダリがどの程度古くなった時点でセカンダリとの通信を停止するかを秒単位で指定します。の最小値は、90 秒またはハートビート頻度に 10 秒を加えた値のうち大きい方です。詳細については、 MongoDB Server のドキュメントの maxStalenessSeconds オプション を参照してください。パラメータを指定しない場合、または デフォルト: |
| string | 読み取り操作と書込み (write) 操作に使用する UUID 表現を指定します。詳しくは、 MongoClientSettings.getUuidRepresentation() メソッド の ドライバー ドキュメントを参照してください。 デフォルト: |
| ブール値 | ネットワーク エラーにより完了できない場合、サポートされている書き込み操作を再試行する必要があることを指定します。 デフォルト: |
| ブール値 | ネットワーク エラーにより完了できない場合、サポートされている読み取り操作を再試行する必要があることを指定します。 デフォルト: |
次の例では、最も近いレプリカセットメンバーから読み取るように読み込み設定 (read preference)を設定します。
ConnectionString connectionString = "mongodb://<host>:<port>/?readPreference=nearest" MongoClient mongoClient = MongoClients.create(connectionString)
これらのパラメーターの詳細については、「 ConnectionString APIドキュメント 」を参照してください。
ドライバーの読み取り/書込み動作を変更するには、次のメソッドを MongoClientSettings
コンストラクターにチェーンします。
| 読み取り保証 (read concern)を設定します。サーバー マニュアル ページ APIドキュメント |
| 読み込み設定 (read preference)を設定する デフォルト: |
| ネットワークエラーが発生した場合にドライバーが読み取りの再試行を実行するかどうか。 デフォルト: |
| ネットワークエラーが発生した場合にドライバーが書込みを再試行するかどうか。 デフォルト: |
| UUID のインスタンスをエンコードし、サブタイプが 3 の BSON バイナリ値をデコードするときに使用する UUID 表現を設定します。 |
| 書込み保証 ( write concern) を設定します。 デフォルト : |
次の例では、最も近いレプリカセットメンバーから読み取るように読み込み設定 (read preference)を設定します。
MongoClient mongoClient = MongoClients.create( MongoClientSettings.builder().applyConnectionString(new ConnectionString("<your connection string>")) .readPreference(ReadPreference.nearest()) .build());
これらのメソッドの詳細については、 MongoClientSettings.Builder APIドキュメント を参照してください。