このセクションでは、.NET/C# ドライバーで使用できる MongoDB の接続オプションと認証オプションについて説明します。接続を構成するには、接続 URI または MongoClientSettings オブジェクトのいずれかを使用します。
接続 URI の使用
MongoClient コンストラクターに接続 URI を渡す場合は、接続オプションを <name>=<value> ペアとして文字列に含めることができます。次の例では、接続 URI に、値が 60000 の connectTimeoutMS オプションと、値が true の tls オプションが含まれています。
using MongoDB.Driver; // Sets the connection URI const string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true"; // Creates a new client and connects to the server var 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 object var 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 server var client = new MongoClient(settings);
接続オプション
次の表は、MongoClientSettings クラスで使用できる各接続オプションと、可能な場合は接続文字列で同じ結果を達成する方法を示しています。MongoClientSettings プロパティが接続文字列内の複数のオプションにマップされている場合、接続 URI の例には関連するすべてのオプションが表示されます。
注意
時間範囲にクエリ パラメーターを使用する場合、値はミリ秒単位でなければなりません。たとえば、60 秒を指定するには、値 60000 を使用します。時間範囲に MongoClientSettings オブジェクトを使用している場合は、適切な TimeSpan 値を使用します。
MongoClientSettings プロパティ | 説明 | |||
|---|---|---|---|---|
AllowInsecureTls | TLS | |||
ApplicationName |
| |||
AutoEncryptionOptions |
| |||
ClusterConfigurator | ||||
コンプレッサー | サーバーとの間で送受信されるワイヤプロトコル メッセージの 優先圧縮タイプ | |||
ConnectTimeout | ドライバーがタイムアウトする前に、サーバーへの単一の TCP | |||
Credentials | ドライバーがサーバーに対して認証する方法の設定。これには、認証情報、メカニズム、ソース、およびその他の設定が含まれます。認証メカニズムを指定しない | |||
DirectConnection | すべての 操作をホストに強制的にディスパッチするかどうかを指定します。このオプションを指定すると、ドライバーは | |||
HeartbeatInterval |
| |||
HeartbeatTimeout |
| |||
IPv6 | ホスト6 アドレスが IPv | |||
IsFrozen |
| |||
LinqProvider | 使用する LINQ | |||
LoadBalanced | ドライバーが ロードバランサーに接続しているかどうかを指定します。このプロパティは、次の場合にのみ に設定できます。
データ型: | |||
LocalThreshold |
| |||
LoggingSettings | ログ記録 | |||
MaxConnecting |
| |||
MaxConnectionIdleTime | ドライバーが接続を閉じる前に接続がアイドル状態になる時間の長さ。データ型: | |||
MaxConnectionLifeTime |
| |||
MaxConnectionPoolSize |
| |||
MinConnectionPoolSize |
| |||
ReadConcern | クライアントのデフォルトの読み取り保証 (read concern)。詳細については、 | |||
ReadEncoding | string のデシリアライズに使用する UTF- エンコーディング。無効な8 | |||
ReadPreference | クライアントのデフォルトの読み取り設定。 接続 URI に | |||
ReplicaSetName |
| |||
RetryReads | 再試行可能な読み取り | |||
RetryWrites |
| |||
スキーム | 標準の接続文字列形式( | |||
サーバー | MongoDBが | |||
ServerApi | 安定したAPIバージョン管理を選択できるようになります。 Stable API | |||
ServerMonitoringMode | 使用するサーバー監視プロトコルを指定します。このオプションを に設定すると、モニタリングモードはドライバーがを実行中いる環境によって決まります。ドライバーは、 | |||
サーバー | ||||
ServerSelectionTimeout |
| |||
SocketTimeout |
| |||
SrvMaxHosts | シードリストを最初に設定するとき、または SRV ポーリング中にトポロジーに新しいホストを追加するときにランダムに選択する SRV 結果の最大数。このプロパティは、接続文字列スキームが | |||
SrvServiceName | ドライバーがシードリストを構築するために取得する SRVリソースレコードのサービス名。このプロパティは、検出およびポーリングの | |||
SslSettings | TLS/SSL | |||
UseTls | サーバーへの接続に TLS を必要とするかどうかを指定します。 | |||
WaitQueueTimeout |
| |||
WriteConcern | クライアントのデフォルトの書込み保証 (write concern) 設定(書込み (write) タイムアウトやジャーナリングを含む)。詳しくは、 | |||
WriteEncoding | UTF-8 文字列の直列化が厳密か緩やかかを指定します。厳密なエンコーディングでは、無効な |