このセクションでは、.NET/C# ドライバーで使用できる MongoDB の接続オプションと認証オプションについて説明します。接続を構成するには、接続 URI または MongoClientSettings オブジェクトのいずれかを使用します。
接続 URI の使用
MongoClient コンストラクターに接続 URI を渡す場合は、接続オプションを <name>=<value> ペアとして文字列に含めることができます。次の例では、接続 URI に、値が 60000 の connectTimeoutMS オプションと、値が true の tls オプションが含まれています。
using MongoDB.Driver;
// Sets the connection URIconst string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true";
// Creates a new client and connects to the servervar client = new MongoClient(connectionUri);使用 MongoClientSettings
MongoClientSettings オブジェクトを使用すると、接続 URI ではなくコードで接続設定を構成できます。このように接続を構成すると、実行時に設定を変更しやすくなり、コンパイル中にエラーを検出しやすくなり、接続 URI よりも多くの構成オプションが提供されます。
MongoClientSettings オブジェクトを使用するには、クラスのインスタンスを作成し、そのプロパティを設定して、それを引数として MongoClient コンストラクターに渡します。
//const string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true";
// Creates a MongoClientSettings objectvar settings = new MongoClientSettings(){ Scheme = ConnectionStringScheme.MongoDBPlusSrv, Server = new MongoServerAddress("sample.host", 27017), ConnectTimeout = new TimeSpan(0, 0, 60), UseTls = true};
// Creates a new client and connects to the servervar client = new MongoClient(settings);接続オプション
次の表は、MongoClientSettings クラスで使用できる各接続オプションと、可能な場合は接続文字列で同じ結果を達成する方法を示しています。MongoClientSettings プロパティが接続文字列内の複数のオプションにマップされている場合、接続 URI の例には関連するすべてのオプションが表示されます。
注意
時間範囲にクエリ パラメーターを使用する場合、値はミリ秒単位でなければなりません。たとえば、60 秒を指定するには、値 60000 を使用します。時間範囲に MongoClientSettings オブジェクトを使用している場合は、適切な TimeSpan 値を使用します。
MongoClientSettings プロパティ | 説明 |
|---|---|
AllowInsecureTls | TLS 制約を可能な限り緩和するかどうかを指定します。 |
ApplicationName |
|
AutoEncryptionOptions | 自動クライアント側暗号化の設定。 |
ClusterConfigurator | ソケット、TLS、クラスターなどの低レベル構成オプション。 |
コンプレッサー |
|
ConnectTimeout | タイムアウトする前にドライバーがサーバーへの単一の TCP ソケット接続を確立しようとする時間の長さ |
Credentials | ドライバーがサーバーに対して認証する方法の設定。これには、 |
DirectConnection | すべての操作をホストに強制的にディスパッチするかどうかを指定します。 |
HeartbeatInterval | 定期的なサーバーモニタリングチェックの間隔。 |
HeartbeatTimeout | モニタリングソケットがタイムアウトするまでアイドル状態を維持できる時間の長さ。 |
IPv6 | ホスト アドレスが IPv6形式であるかどうかを指定します。 |
IsFrozen | 設定が固定されているかどうかを示します。凍結された設定は変更できません。 |
LinqProvider | 使用する LINQ プロバイダー。 |
LoadBalanced | ドライバーがロード バランサーに接続しているかどうかを指定します。この
データ型: |
LocalThreshold | サーバーの適格性のレイテンシ ウィンドウ。 |
LoggingSettings | ロギングに使用される設定。 |
MaxConnecting |
|
MaxConnectionIdleTime | ドライバーが接続を閉じる前に接続がアイドル状態になることができる時間の長さ。 |
MaxConnectionLifeTime | 接続が期限切れる前にプールできる時間の長さ。 |
MaxConnectionPoolSize |
|
MinConnectionPoolSize | 操作が行われていない場合でも、ドライバーが接続プールに作成し維持する接続の数。 |
ReadConcern | クライアントのデフォルトの読み取り保証(read concern)。 |
ReadEncoding | string のデシリアライズに使用する UTF-8 エンコーディング。 |
ReadPreference | クライアントのデフォルトの読み込み設定 (read preference)。 接続 URI に |
ReplicaSetName | 接続するレプリカセットの名前。 |
RetryReads | 再試行可能な読み取りを有効にします。 |
RetryWrites | 再試行可能な書き込みを有効にします。 |
スキーム | 標準接続文字列形式 |
サーバー | MongoDB が実行されているホストとポート番号。 |
ServerApi | Stable API バージョン管理を選択できるようになります。Stable API バージョン管理の詳細については、 |
ServerMonitoringMode | 使用するサーバーモニタリング プロトコルを指定します。 |
サーバー | MongoDB が実行されているクラスター ノード。 |
ServerSelectionTimeout | ドライバーがタイムアウトする前にサーバーを選択しようとする時間の長さ。 |
SocketTimeout |
|
SrvMaxHosts | シードリストを初期化するとき、または SRV ポーリング中にトポロジーに新しいホストするを追加するときにランダムに選択する SRV 結果の最大数。 |
SrvServiceName | ドライバーがシードリストを構築するために検索するSRVリソースレコードのサービス名。 |
SslSettings | TLS/SSL オプションには、クライアント証明書、失効処理、有効な |
UseTls | サーバーへの接続に TLS を必要とするかどうかを指定します。 |
WaitQueueTimeout |
|
WriteConcern | クライアントの書き込みタイムアウトやジャーナリングを含むデフォルトの書込み保証(write |
WriteEncoding | UTF-8 string の直列化が厳密か緩やかを指定します。 |