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ドライバーで使用できる接続オプションについて説明します。接続オプションの完全なリストを表示するには、サーバー マニュアルガイドの「接続文字列 オプション」セクションにアクセスしてください。
ネットワーク圧縮
タイムアウト
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
connectTimeoutMS | Non-negative integer |
| サーバーに接続するときに、基礎の各 TCP ストリームに渡される接続タイムアウトをミリ秒単位で指定します。 |
サーバーの選択
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
heartbeatFrequencyMS | 500 以上の整数 |
| 各監視スレッドがサーバー チェックの実行間で待機する時間をミリ秒単位で指定します。 |
maxStalenessSeconds |
|
| プライマリノードに対する最大の遅延時間(秒)を指定します。この操作にセカンダリノードを使用できるようにします。 |
serverSelectionTimeoutMS | Non-negative integer |
|
|
認証
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
authMechanism | 文字列 | なし | 使用する認証メカニズムを指定します。 このオプションを指定しない場合、ドライバーはデフォルトの認証メカニズムを使用します。 Rust ドライバーでの認証の詳細については、「認証メカニズム 」に関するガイドを参照してください。 |
authMechanismProperties | 文字列 | なし |
|
authSource | 文字列 | 説明を参照してください | 認証に使用されるデータベースを指定します。 |
tls | ブール値 |
| サーバーとの接続で使用する |
tlsAllowInvalidCertificates | ブール値 |
| サーバーが無効な証明書を提示した場合、 |
tlsCAFile | 文字列 | 説明を参照してください |
|
tlsCertificateKeyFile | 文字列 | なし |
|
tlsCertificateKeyFilePassword | 文字列 | なし | キーが暗号化されている場合は、 証明ファイル内の秘密キーを復号化するためのパスワードを指定します。 |
tlsInsecure | ブール値 |
| サーバーが無効な証明書を提示した場合、 |
読み取り操作と書込み操作
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
directConnection | ブール値 |
|
|
enableオーバーロードリターゲティング | ブール値 |
| ドライバーが過負荷エラーを返すサーバーの優先順位を下げ、同じ過負荷サーバーで再試行する可能性を減らすかどうかを指定します。 |
journal | ブール値 |
| 操作がディスク上のジャーナルに伝達されたことの確認を要求します。 |
localThresholdMS | Non-negative integer |
| ドライバーとサーバー間の平均ラウンドトリップ時間が、すべての適切なサーバーの最短ラウンドトリップ時間と比較して持続できる時間の長さをミリ秒単位で指定します。 |
maxAdvancedRetrys | Non-negative integer |
| ドライバーが過負荷エラーを発生した場合に試行する最大再試行回数を指定します。 |
readConcernLevel | 文字列 | なし |
|
readPreference | 文字列 |
| ドライバーがレプリカセットのノードに読み取り操作をルーティングする方法を指定します。 |
readPreferenceTags | キーと値のペアをコンマで区切ったリスト | なし | レプリカセットのどのノードが操作の対象となるかを指定します。このキーの各インスタンスは個別のタグセットです。 |
replicaSet | 文字列 | なし |
|
retryReads | ブール値 |
| 操作が失敗した場合にクライアントが読み取り操作を再試行するかどうかを指定します。 |
w | 負でない整数または文字列 | なし | 操作が特定の数または種類のサーバーに伝播されたことの確認応答をリクエストします。 |
wTimeoutMS | Non-negative integer | タイムアウトなし | 書込み保証 (write concern)の制限時間をミリ秒単位で指定します。 |
接続プール
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
maxIdleTimeMS | Non-negative integer |
| 接続がサーバーによって閉じられる前に、接続プール内でアイドル状態を維持できる時間をミリ秒単位で指定します。 |
maxPoolSize | Non-negative integer |
|
|
minPoolSize | Non-negative integer |
| 特定の時点でサーバーの接続プール内で使用可能な接続の最小数を指定します。 |
接続プールの詳細については、接続プールガイドを参照してください。
一般
オプション名 | 許容値 | デフォルト値 | 説明 |
|---|---|---|---|
appName | 文字列 | なし |
|
API ドキュメント
Rustドライバーの ClientOptions の詳細については、ClientOptions.のAPIドキュメントを参照してください。