Overview
このセクションでは、 Rustドライバーで使用できるMongoDB の接続オプションと認証オプションについて説明します。接続を構成するには、接続 URI (接続文字列とも呼ばれます)を使用するか、Client の作成時に ClientOptionsインスタンスにフィールドを設定します。
接続 URI の使用
接続 URI を Client::with_uri_str メソッドに渡す場合は、接続オプションを <name>=<value> ペアとして string に含めることができます。次の例では、値が 60000 である connectTimeoutMS オプションと、値が true である tls オプションを含む接続 URI を示しています。
use mongodb::Client; let uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true"; let client = Client::with_uri_str(uri).await?;
ClientOptions の使用
接続 URI に接続オプションを含める代わりに、ClientOptionsインスタンスで接続オプションを設定できます。ClientOptionsインスタンスを使用して接続を構成すると、実行時に設定を変更し、コンパイル中にエラーを検出しやすくなります。次の例は、ClientOptions を使用して接続オプションを設定する方法を示しています。
use std::time::Duration; use mongodb::{Client, options::ClientOptions}; let uri = "mongodb://<hostname>:<port>/"; let mut client_options = ClientOptions::parse(uri).await?; client_options.connect_timeout = Some(Duration::from_secs(60000)); //Set additional options on client_options here let client = Client::with_options(client_options)?;
接続オプション
次のセクションでは、 Rustドライバーで使用できる接続オプションについて説明します。接続オプションの完全なリストを表示するには、サーバー マニュアルガイドの「接続文字列 オプション」セクションにアクセスしてください。
ネットワーク圧縮
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
compressors | 文字列のコンマ区切りリスト | なし | |
zlibCompressionLevel |
|
|
タイムアウト
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
connectTimeoutMS | Non-negative integer |
| サーバーに接続するときに、基礎の各 TCP ストリームに渡される接続タイムアウトをミリ秒単位で指定します。 |
サーバーの選択
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
heartbeatFrequencyMS | 500 以上の整数 |
| 各監視スレッドがサーバー チェックの実行間で待機する時間をミリ秒単位で指定します。 |
maxStalenessSeconds |
|
| 指定された操作でセカンダリノードが考慮される、プライマリノードよりの最大遅延を秒単位で指定します。このオプションの値は少なくとも でなければなりません。そうでない場合、操作はエラーを発生させます。値が |
serverSelectionTimeoutMS | Non-negative integer |
|
|
認証
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
authMechanism | 文字列 | なし | 使用する認証メカニズムを指定します。 このオプションを指定しない場合、ドライバーはデフォルトの認証メカニズムを使用します。 Rust ドライバーでの認証の詳細については、「認証メカニズム 」に関するガイドを参照してください。 |
authMechanismProperties | 文字列 | なし |
|
authSource | 文字列 | 説明を参照してください |
|
tls | ブール値 |
| インスタンスがサーバーとの接続で使用する TLS 構成を指定します。デフォルトでは |
tlsAllowInvalidCertificates | ブール値 |
|
|
tlsCAFile | 文字列 | 説明を参照してください | インスタンスが TLS に使用する認証局(CA)ファイルへのパスを指定します。このオプションを指定しない場合、ドライバーは |
tlsCertificateKeyFile | 文字列 | なし |
|
tlsCertificateKeyFilePassword | 文字列 | なし | キーが暗号化されている場合は、 証明ファイル内の秘密キーを復号化するためのパスワードを指定します。 |
tlsInsecure | ブール値 |
|
|
読み取り操作と書込み操作
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
directConnection | ブール値 |
|
|
enableオーバーロードリターゲティング | ブール値 |
| ドライバーが過負荷エラーを返すサーバーの優先順位を下げ、同じ過負荷サーバーで再試行する可能性を減らすかどうかを指定します。 |
journal | ブール値 |
| 操作がディスク上のジャーナルに伝達されたことの確認を要求します。 |
localThresholdMS | Non-negative integer |
| ドライバーとサーバー間の平均ラウンドトリップ時間が、すべての適切なサーバーの最短ラウンドトリップ時間と比較して、続く時間をミリ秒単位で指定します。 |
maxAdvancedRetrys | Non-negative integer |
| ドライバーが過負荷エラーを発生した場合に試行する最大再試行回数を指定します。 |
readConcernLevel | 文字列 | なし | インスタンスで実行される操作のデフォルトの読み取り保証 (read concern)を指定します。詳細については、サーバー |
readPreference | 文字列 |
| ドライバーがレプリカセットのメンバーに読み取り操作をルーティングする方法を指定します。詳細については、サーバー |
readPreferenceTags | キーと値のペアをコンマで区切ったリスト | なし | どのレプリカセットノードを操作の対象にするかを指定します。このキーの各インスタンスは、個別のタグセットです。ドライバーは、セット内の各タグを持つ |
replicaSet | 文字列 | なし |
|
retryReads | ブール値 |
| 操作が失敗した場合にクライアントが読み取り操作を再試行するかどうかを指定します。 |
w | 負でない整数または文字列 | なし | 特定の数または種類のサーバーに操作が反映されたことの確認応答を要求します。詳細については、サーバー |
wTimeoutMS | Non-negative integer | タイムアウトなし | 書込み保証 (write |
接続プール
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
maxIdleTimeMS | Non-negative integer |
| サーバーが接続プールを閉じる前に接続が接続プール内でアイドル状態を維持できる時間をミリ秒単位で指定します。値が |
maxPoolSize | Non-negative integer |
|
|
minPoolSize | Non-negative integer |
| 特定の時点でサーバーの接続プールで利用可能な接続の最小数を指定します。プールにある接続が |
接続プールの詳細については、接続プールガイドを参照してください。
一般
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
appName | 文字列 | なし |
|
API ドキュメント
Rustドライバーの ClientOptions の詳細については、ClientOptions.のAPIドキュメントを参照してください。