AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

接続オプションの指定

このセクションでは、 Rustドライバーで使用できるMongoDB の接続オプションと認証オプションについて説明します。接続を構成するには、接続 URI (接続文字列とも呼ばれます)を使用するか、Client の作成時に ClientOptionsインスタンスにフィールドを設定します。

接続 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?;

接続 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

文字列のコンマ区切りリスト

なし

Clientインスタンスが指定された順序で使用する圧縮機を指定します。
ネットワーク圧縮の詳細については、ネットワーク圧縮ガイドを参照してください。

zlibCompressionLevel

0 から 9 までの整数

6

このコンプレッサーを使用する場合、zlib 圧縮のレベル フィールドを指定します。レベル値が大きいほど圧縮が行われますが、速度は遅くなります。
0 の値を設定すると圧縮は行われず、9 の値を設定すると最大圧縮が行われます。
ネットワーク圧縮の詳細については、ネットワーク圧縮ガイドを参照してください。

オプション名
許容値
デフォルト値
説明

connectTimeoutMS

Non-negative integer

10000 (10 秒)

サーバーに接続するときに、基礎の各 TCP ストリームに渡される接続タイムアウトをミリ秒単位で指定します。

オプション名
許容値
デフォルト値
説明

heartbeatFrequencyMS

500 以上の整数

10000 (10 秒)

各監視スレッドがサーバー チェックの実行間で待機する時間をミリ秒単位で指定します。

maxStalenessSeconds

-1、または 以上の任意の整数 90

-1

プライマリノードに対する最大の遅延時間(秒)を指定します。この操作にセカンダリノードを使用できるようにします。
このオプションの値は少なくとも 90 でなければならず、そうでない場合は操作でエラーが発生します。-1 の値は、最大遅延時間がないことを意味します。

serverSelectionTimeoutMS

Non-negative integer

30000 (30 秒)

Clientインスタンスがタイムアウトする前に操作のサーバーを選択しようとする際に待機する時間をミリ秒単位で指定します。

オプション名
許容値
デフォルト値
説明

authMechanism

文字列

なし

使用する認証メカニズムを指定します。 このオプションを指定しない場合、ドライバーはデフォルトの認証メカニズムを使用します。 Rust ドライバーでの認証の詳細については、「認証メカニズム 」に関するガイドを参照してください。

authMechanismProperties

文字列

なし

authMechanismオプションで設定された認証メカニズムの詳細なプロパティを指定します。

authSource

文字列

説明を参照してください

認証に使用されるデータベースを指定します。
このオプションは、SCRAM ベースの認証メカニズムの場合はadminMONGODB-X509 メカニズムの場合は$externalPLAIN メカニズムの場合はデータベース名または$externalにデフォルト設定されます。

tls

ブール値

false

サーバーとの接続で使用する Client インスタンスの TLS 構成を指定します。
デフォルトでは、TLS はオフになっています。

tlsAllowInvalidCertificates

ブール値

false

サーバーが無効な証明書を提示した場合、Client インスタンスがエラーを返すかどうかを指定します。
アプリケーションに脆弱性を作成しないよう、このオプションはテスト環境のみ true に設定することをお勧めします。

tlsCAFile

文字列

説明を参照してください

Client インスタンスが TLS に使用する認証機関 (CA) ファイルへのパスを指定します。
このオプションを指定しない場合、ドライバーは webpki-roots crate の Mozilla ルート証明書を使用します。

tlsCertificateKeyFile

文字列

なし

Client インスタンスがサーバーに提示して自身を認証するための証明書ファイルへのパスを指定します。
このオプションを設定しない場合、Client インスタンスはサーバーに対して自身を認証しようとしません。

tlsCertificateKeyFilePassword

文字列

なし

キーが暗号化されている場合は、 証明ファイル内の秘密キーを復号化するためのパスワードを指定します。

tlsInsecure

ブール値

false

サーバーが無効な証明書を提示した場合、Client インスタンスがエラーを返すかどうかを指定します。
アプリケーションに脆弱性を作成しないよう、このオプションはテスト環境のみ true に設定することをお勧めします。

オプション名
許容値
デフォルト値
説明

directConnection

ブール値

false

Clientインスタンスがクラスター内のすべてのサーバーを検出して接続するのではなく、単一のホストに直接接続するかどうかを指定します。

enableオーバーロードリターゲティング

ブール値

false

ドライバーが過負荷エラーを返すサーバーの優先順位を下げ、同じ過負荷サーバーで再試行する可能性を減らすかどうかを指定します。

journal

ブール値

false

操作がディスク上のジャーナルに伝達されたことの確認を要求します。

localThresholdMS

Non-negative integer

15

ドライバーとサーバー間の平均ラウンドトリップ時間が、すべての適切なサーバーの最短ラウンドトリップ時間と比較して持続できる時間の長さをミリ秒単位で指定します。
0 の値は、レイテンシ ウィンドウがないことを示しているため、平均ラウンドトリップ時間が最も短いサーバーのみが適格となります。

maxAdvancedRetrys

Non-negative integer

2

ドライバーが過負荷エラーを発生した場合に試行する最大再試行回数を指定します。

readConcernLevel

文字列

なし

Client インスタンスで実行される操作のデフォルトの読み取り保証 (read concern)を指定します。
詳細については、サーバー マニュアルの「読み取り保証 (read concern)」を参照してください。

readPreference

文字列

primary

ドライバーがレプリカセットのノードに読み取り操作をルーティングする方法を指定します。
詳細については、サーバー マニュアルの 読み込み設定 (read preference) を参照してください。

readPreferenceTags

キーと値のペアをコンマで区切ったリスト

なし

レプリカセットのどのノードが操作の対象となるかを指定します。このキーの各インスタンスは個別のタグセットです。
ドライバーは、セット内の各タグを持つ1つ以上のサーバーが見つかるまで、各タグセットをチェックします。

replicaSet

文字列

なし

Clientインスタンスが接続するレプリカセットの名前を指定します。

retryReads

ブール値

true

操作が失敗した場合にクライアントが読み取り操作を再試行するかどうかを指定します。

w

負でない整数または文字列

なし

操作が特定の数または種類のサーバーに伝播されたことの確認応答をリクエストします。
詳細については、サーバー マニュアルの「書込み保証 (write concern)」を参照してください。

wTimeoutMS

Non-negative integer

タイムアウトなし

書込み保証 (write concern)の制限時間をミリ秒単位で指定します。
制限時間内に操作が要求されたレベルに伝播されなかった場合、ドライバーはエラーを発生させます。

オプション名
許容値
デフォルト値
説明

maxIdleTimeMS

Non-negative integer

0

接続がサーバーによって閉じられる前に、接続プール内でアイドル状態を維持できる時間をミリ秒単位で指定します。
0 の値は、クライアントがアイドル接続を閉じないことを示します。

maxPoolSize

Non-negative integer

10

Client インスタンスが特定のサーバーの接続プールで作成できる接続の最大数を指定します。
maxPoolSize 接続の値がチェックアウトされている間に操作を試行すると、操作は進行中の操作が終了して接続がプールに戻るまで待機します。

minPoolSize

Non-negative integer

0

特定の時点でサーバーの接続プール内で使用可能な接続の最小数を指定します。
プール内の接続数が minPoolSize 未満の場合、サーバーは背景で minPoolSize の値まで接続を追加します。

接続プールの詳細については、接続プールガイドを参照してください。

オプション名
許容値
デフォルト値
説明

appName

文字列

なし

Client インスタンスがハンドシェイクの一部としてサーバーに送信するアプリケーション名を指定します。
appName を指定すると、サーバーログを使用して、どの Client インスタンスがサーバーに接続されているかを判定するのに役立ちます。

Rustドライバーの ClientOptions の詳細については、ClientOptions.のAPIドキュメントを参照してください。