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

接続オプション

このセクションでは、.NET/C# ドライバーで使用できる MongoDB の接続オプションと認証オプションについて説明します。接続を構成するには、接続 URI または MongoClientSettings オブジェクトのいずれかを使用します。

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 オブジェクトを使用すると、接続 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 制約を可能な限り緩和するかどうかを指定します。
これには、無効な証明書やホスト名の不一致を許可することが含まれます。

このプロパティがtrue に設定され、 がSslSettings.CheckCertificateRevocation
falseに設定されている場合、.NET/C# ドライバーは例外をスローします。

データ型: boolean
デフォルト: false
接続 URI 例: tlsInsecure=true

ApplicationName


接続ハンドシェイクの一環として、ドライバーがクライアントのメタデータでサーバーに渡すアプリ名。接続が確立されると、サーバーはこの値を MongoDB ログに 1
回出力します。この値は、スロークエリログとプロファイル
コレクションにも記録されます。

データ型: string
デフォルト: null
接続 URI の例: appName=yourApp

AutoEncryptionOptions

自動クライアント側暗号化の設定。

データ型: AutoEncryptionOptions
デフォルト: null
接続 URI の例: N/A

ClusterConfigurator

ソケット、TLS、クラスターなどの低レベル構成オプション。

データ型: アクション<ClusterBuilder>
デフォルト: null
接続 URI 例: N/A

コンプレッサー


サーバーとの間で送受信されるワイヤプロトコル メッセージの圧縮の優先順位のタイプ。
ドライバーは、サーバーがサポートする圧縮タイプのうち、最初のものを使用します。

データ型: CompressorConfiguration
デフォルト: null
接続 URI の例: compressors=snappy,zstd

ConnectTimeout

タイムアウトする前にドライバーがサーバーへの単一の TCP ソケット接続を確立しようとする時間の長さ
。

DataType: TimeSpan
デフォルト: 30 秒
接続 URI 例: connectTimeoutMS=0

Credentials

ドライバーがサーバーに対して認証する方法の設定。これには、
認証情報、メカニズム、ソース、その他の設定が含まれます。

認証メカニズムを指定しない場合、ドライバーはサーバーのバージョンに応じて、
SCRAM-SHA-1 またはSCRAM-SHA-256 のいずれかを使用します。
使用可能な 認証メカニズムについては、 認証メカニズム
を参照してください。

データ型: MongoCredential
デフォルト: null
接続 URI の例:

mongodb://user1:password1&authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:other,REALM:otherrealm&authSource=$external

DirectConnection

すべての操作をホストに強制的にディスパッチするかどうかを指定します。

このオプションを指定すると、ドライバーは
DNS シード リスト接続形式を受け入れません。
代わりに、 標準の接続 URI 形式
を使用する必要があります。

複数のホスト名を指定する場合、このプロパティをfalse
に設定する必要があります。

データ型: boolean
デフォルト: false
接続 URI の例: directConnection=true

HeartbeatInterval

定期的なサーバーモニタリングチェックの間隔。
500ミリ秒以上である必要があります。

データ型: TimeSpan
デフォルト: 10 秒
接続URIの例: heartbeatFrequencyMS=5000

HeartbeatTimeout

モニタリングソケットがタイムアウトするまでアイドル状態を維持できる時間の長さ。

データ型: TimeSpan
デフォルト: ConnectTimeout と同じ値
接続 URI 例: heartbeatTimeoutMS=5000

IPv6

ホスト アドレスが IPv6形式であるかどうかを指定します。

データ型: boolean
デフォルト: false
接続 URI 例: ipv6=true

IsFrozen

設定が固定されているかどうかを示します。凍結された設定は変更できません。
このオプションは読み取り専用です。

データ型: boolean
デフォルト: false
接続 URI の例: 該当なし

LinqProvider

使用する LINQ プロバイダー。

データ型: LinqProvider
デフォルト: LinqProvider.V3
接続 URI の例: N/A

LoadBalanced

ドライバーがロード バランサーに接続しているかどうかを指定します。この
プロパティを true に設定できるのは、次の場合に限ります。

  • ホスト名を 1 つだけ指定します。

  • レプリカセットに接続していません。

  • SrvMaxHosts プロパティを使用していません。

  • DirectConnection プロパティを使用していません。

データ型: boolean
デフォルト: false
接続 URI 例: loadBalanced=true

LocalThreshold

サーバーの適格性のレイテンシ ウィンドウ。

サーバーの往復時間が、最速のサーバーの往復時間とこの値を合した値より長い場合、そのサーバーは選択対象になりません。

データ型: TimeSpan
デフォルト: 15 ミリ秒
接続 URI の例: localThresholdMS=0

LoggingSettings

ロギングに使用される設定。

データ型: LoggingSettings
デフォルト: null
Connection URI 例: N/A

MaxConnecting


ドライバーの接続プールが同時に確立できる接続の最大数。

データ型: integer
デフォルト: 2
接続 URI 例: maxConnecting=3

MaxConnectionIdleTime

ドライバーが接続を閉じる前に接続がアイドル状態になることができる時間の長さ。

データ型: TimeSpan
デフォルト: 10 分
接続 URI 例: maxIdleTimeMS=300000

MaxConnectionLifeTime

接続が期限切れる前にプールできる時間の長さ。

データ型: TimeSpan
デフォルト: 30 分
接続 URI 例: maxLifetimeMS=50000

MaxConnectionPoolSize


ドライバーが接続プール内で作成できるクライアントまたは接続の最大数。このカウント数には、使用中の接続が含まれます。

データ型: integer
デフォルト: 100
接続 URI の例: maxPoolSize=150

MinConnectionPoolSize

操作が行われていない場合でも、ドライバーが接続プールに作成し維持する接続の数。

このカウントには、使用中の接続が含まれます。

データ型: integer
デフォルト: 0
接続 URI の例: minPoolSize=1

ReadConcern

クライアントのデフォルトの読み取り保証(read concern)。
詳細については、読み取り保証 (read concern)を参照してください。

データ型: ReadConcern
デフォルト: ReadConcern.Default
接続 URI 例: readConcernLevel=local

ReadEncoding

string のデシリアライズに使用する UTF-8 エンコーディング。
無効な UTF-8 バイト
シーケンスが発生した場合、厳密なエンコーディングでは例外がスローされます。

データ型: UTF8Encoding
デフォルト: 厳密なエンコーディング
接続 URI の例: 該当なし

ReadPreference

クライアントのデフォルトの読み込み設定 (read preference)。MaxStaleness

は、セカンダリが経験でき、サーバー選択の対象となる最長のレプリケーションラグ(壁時計時間)を表します。-1を指定すると、最大値はありません。
詳しくは、「 読み込み設定 (read preference) 」を参照してください。

データ型: ReadPreference
デフォルト: ReadPreference.Primary
接続 URI の例:

readPreference=primaryPreferred&maxStalenessSeconds=90&readPreferenceTags=dc:ny,rack:1

接続 URI に readPreferenceTags パラメーターを複数回含めることができます。そうすると、クライアントは各インスタンスを個別のタグ セットとして扱います。URI 内のタグの順序によって、読み込み設定(read preference)が決まります。このパラメーターは、読み込み設定(read preference)モードが primary でない場合にのみ使用できます。

ReplicaSetName

接続するレプリカセットの名前。

データ型: string
デフォルト: null
接続 URI 例: replicaSet=yourReplicaSet

RetryReads

再試行可能な読み取りを有効にします。

データ型: boolean
デフォルト: true
接続 URI 例: retryReads=false

RetryWrites

再試行可能な書き込みを有効にします。

データ型: boolean
デフォルト: true
接続 URI 例: retryWrites=false

スキーム

標準接続文字列形式MongoDB
()を使用するか、DNS シードリスト形式 ()を使用するかを指定します。MongoDBPlusSrv
接続文字列形式の詳細については、 MongoDB マニュアル を参照してください。


プロパティが に設定されている場合にDirectConnectiontrue
DNS シードリスト形式を使用しようとすると、.NET/C#
ドライバーは例外をスローします。

データ型: ConnectionStringScheme
デフォルト: ConnectionStringScheme.MongoDB
接続 URI 例: mongodb+srv://

サーバー

MongoDB が実行されているホストとポート番号。

データ型: MongoServerAddress
デフォルト: localhost:27017
接続 URI 例: mongodb://sample.host:27017

ServerApi

Stable API バージョン管理を選択できるようになります。Stable API バージョン管理の詳細については、
MongoDB Manual を参照してください。


データ型: ServerApi
デフォルト: null
接続 URI 例: N/A

ServerMonitoringMode

使用するサーバーモニタリング プロトコルを指定します。
このオプションをAuto に設定すると、モニタリング
モードはドライバーが実行されている環境によって決定されます。
ドライバーは、Amazon
Web Services Lambda などの FaaS(function-as-a-service)環境ではポーリング モードを使用し、その他の環境ではストリーミング モードを使用します。

データ型: ServerMonitoringMode
デフォルト: Auto
接続 URI 例: serverMonitoringMode=poll

サーバー

MongoDB が実行されているクラスター ノード。

データ型: IEnumerable<MongoServerAddress>
デフォルト: localhost:27017
接続 URI の例: mongodb://sample.host1:27017,sample.host2:27017

ServerSelectionTimeout

ドライバーがタイムアウトする前にサーバーを選択しようとする時間の長さ。

データ型: TimeSpan
デフォルト: 30 秒
接続 URI 例: serverSelectionTimeoutMS=15000

SocketTimeout


ドライバーがタイムアウトする前にソケット上で送信または受信を試みる時間の長さ。

データ型: TimeSpan
デフォルト: OS デフォルト
接続 URI 例: socketTimeoutMS=0

SrvMaxHosts

シードリストを初期化するとき、または SRV ポーリング中にトポロジーに新しいホストするを追加するときにランダムに選択する SRV 結果の最大数。


このプロパティは、接続文字列スキームが ConnectionStringScheme.MongoDBPlusSrv に設定されている場合にのみ使用できます。

レプリカセットに接続する場合は使用できません。

データ型: integer
デフォルト: 0
接続 URI の例: srvMaxHosts=3

SrvServiceName

ドライバーがシードリストを構築するために検索するSRVリソースレコードのサービス名。
このプロパティは、検出およびポーリングの
SRV lookup
のデフォルトのサービス名を上書きます。

このプロパティは、接続文字列スキームが ConnectionStringScheme.MongoDBPlusSrv に設定されている場合にのみ使用できます。

レプリカセットに接続する場合は使用できません。

データ型: string
デフォルト: "mongodb"
接続 URI 例: srvServiceName="customname"

SslSettings

TLS/SSL オプションには、クライアント証明書、失効処理、有効な
TLS/SSL プロトコルと無効な TLS/SSL プロトコルなどがあります。

がSslSettings.CheckCertificateRevocation false
AllowInsecureTlstrueに設定され、 が に設定されている場合、.NET/C#
ドライバーは例外をスローします。

データ型: SslSettings
デフォルト: null
接続 URI の例: tlsDisableCertificateRevocationCheck=false

UseTls

サーバーへの接続に TLS を必要とするかどうかを指定します。
"mongodb+srv"のスキームを使用するか、その他の TLS
オプションを指定する場合、このオプションのデフォルトはtrue になります。

データ型:boolean
デフォルト:false
接続 URI の例:tls=true

WaitQueueTimeout


ドライバーがタイムアウトする前にサーバーの接続プールから接続をチェックアウトしようとする時間の長さ。

データ型: TimeSpan
デフォルト: 2 分
接続 URI 例: waitQueueTimeoutMS=0

WriteConcern

クライアントの書き込みタイムアウトやジャーナリングを含むデフォルトの書込み保証(write
concern)設定。
詳細については、 書込み保証(write concern) を参照してください。

データ型: WriteConcern
デフォルト: WriteConcern.Acknowledged
接続URIの例: w=majority&wTimeoutMS=0&journal=true

WriteEncoding

UTF-8 string の直列化が厳密か緩やかを指定します。
厳密なエンコーディングでは、無効な
UTF-8 バイト シーケンスが検出されると、ドライバーは例外をスローします。

データ型: UTF8Encoding
デフォルト: 厳密なエンコーディング
接続 URI の例: N/A