Docs Menu
Docs Home
/ / /
C#/.NET
/ /

연결 옵션

이 페이지의 내용

  • 연결 URI 사용
  • 사용 MongoClientSettings
  • 연결 옵션

이 섹션에서는 .NET/C# 드라이버에서 사용할 수 있는 MongoDB 연결 및 인증 옵션에 대해 설명합니다. 연결 URI 또는 MongoClientSettings 객체를 사용하여 연결을 구성할 수 있습니다.

연결 URI를 MongoClient 생성자에 전달하는 경우 문자열에 연결 옵션을 <name>=<value> 쌍으로 포함할 수 있습니다. 다음 예시에서 연결 URI에는 값이 60000connectTimeoutMS 옵션과 값이 truetls 옵션이 포함되어 있습니다.

using MongoDB.Driver;
// Connection URI
const string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true";
// Create a new client and connect to the server
var client = new MongoClient(connectionUri);

MongoClientSettings 객체를 사용하여 연결 URI가 아닌 코드에서 연결 설정을 구성할 수 있습니다. 이러한 방식으로 연결을 구성하면 런타임에 설정을 더 쉽게 변경할 수 있고, 컴파일 중에 오류를 포착하는 데 도움이 되며, 연결 URI보다 더 많은 구성 옵션을 제공할 수 있습니다.

MongoClientSettings 객체를 사용하려면 클래스의 인스턴스를 만들고 속성을 설정한 다음 MongoClient 생성자에 인수로 전달하세요.

//const string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true";
// Create a MongoClientSettings object
var settings = new MongoClientSettings()
{
Scheme = ConnectionStringScheme.MongoDBPlusSrv,
Server = new MongoServerAddress("sample.host", 27017),
ConnectTimeout = new TimeSpan(0, 0, 60),
UseTls = true
};
// Create a new client and connect to the server
var client = new MongoClient(settings);

다음 표에는 MongoClientSettings 클래스에서 사용할 수 있는 각 연결 옵션과 가능한 경우 연결 문자열에서 동일한 결과를 얻는 방법이 나열되어 있습니다. MongoClientSettings 속성이 연결 문자열에서 둘 이상의 옵션에 매핑되는 경우 연결 URI 예시에는 모든 관련 옵션이 표시됩니다.

참고

특정 기간 동안 쿼리 매개변수를 사용하는 경우 값은 밀리초 단위여야 합니다. 예를 들어 60초를 지정하려면 60000 값을 사용합니다. 해당 시간 동안 MongoClientSettings 객체를 사용하는 경우 적절한 TimeSpan 값을 사용합니다.

MongoClientSettings 속성
설명
AllowInsecureTls
Specifies whether to relax TLS constraints as much as possible. This can include
allowing invalid certificates or hostname mismatches.

If this property is set to true and SslSettings.CheckCertificateRevocation
is set to false, the .NET/C# Driver will throw an exception.

Data Type: boolean
Default: false
Connection URI Example: tlsInsecure=true
애플리케이션 이름
The app name the driver passes to the server in the client metadata as part of
the connection handshake. The server prints this value to the MongoDB logs once
the connection is established. The value is also recorded in the slow query logs
and profile collections.

Data Type: string
Default: null
Connection URI Example: appName=yourApp
자동 암호화 옵션
Settings for automatic client-side encryption.

Default: null
Connection URI Example: N/A
클러스터 구성자
Low-level configuration options for sockets, TLS, cluster, and others.

Data Type: Action<ClusterBuilder>
Default: null
Connection URI Example: N/A
압축기
The preferred compression types, in order, for wire-protocol messages sent to
or received from the server. The driver uses the first of these compression types
that the server supports.

Default: null
Connection URI Example: compressors=snappy,zstd
ConnectTimeout
The length of time the driver tries to establish a single TCP socket connection
to the server before timing out.

DataType: TimeSpan
Default: 30 seconds
Connection URI Example: connectTimeoutMS=0
자격 증명
Settings for how the driver authenticates to the server. This includes
authentication credentials, mechanism, source, and other settings.

If you don't specify an authentication mechanism, the driver uses either
SCRAM-SHA-1 or SCRAM-SHA-256, depending on the server version. See
authentication mechanisms for available
authentication mechanisms.

Data Type: MongoCredential
Default: null
Connection URI Example:
mongodb://user1:password1&authMechanism=GSSAPI
&authMechanismProperties=SERVICE_NAME:other,REALM:otherrealm
&authSource=$external
DirectConnection
Specifies whether to force dispatch all operations to the host.

If you specify this option, the driver doesn't accept the
instead.

This property must be set to false if you specify more than one
host name.

Data Type: boolean
Default: false
Connection URI Example: directConnection=true
HeartbeatInterval
The interval between regular server-monitoring checks. Must be greater than or
equal to 500 milliseconds.

Data Type: TimeSpan
Default: 10 seconds
Connection URI Example: heartbeatFrequencyMS=5000
HeartbeatTimeout
The length of time a monitoring socket can be idle before timing out.

Data Type: TimeSpan
Default: Same value as ConnectTimeout
Connection URI Example: heartbeatTimeoutMS=5000
IPv6
Specifies whether the host address is in IPv6 format.

Data Type: boolean
Default: false
Connection URI Example: ipv6=true
IsFrozen
Indicates whether the settings have been frozen. Frozen settings can't be changed.
This option is read-only.

Data Type: boolean
Default: false
Connection URI Example: N/A
LinqProvider
The LINQ provider to use.

Data Type: LinqProvider
Default: LinqProvider.V3
Connection URI Example: N/A
로드 밸런싱
Specifies whether the driver is connecting to a load balancer. You can set this
property to true only if:
  • 호스트 이름을 하나만 지정합니다.

  • 복제본 세트에 연결하지 않습니다.

  • SrvMaxHosts 속성을 사용하고 있지 않습니다.

  • DirectConnection 속성을 사용하고 있지 않습니다.

Data Type: boolean
Default: false
Connection URI Example: loadBalanced=true
LocalThreshold
The latency window for server eligibility. If a server's round trip takes longer
than the fastest server's round-trip time plus this value, the server isn't
eligible for selection.

Data Type: TimeSpan
Default: 15 milliseconds
Connection URI Example: localThresholdMS=0
로깅 설정
The settings used for logging.

Data Type: LoggingSettings
Default: null
Connection URI Example: N/A
MaxConnecting
The greatest number of connections a driver's connection pool may be
establishing concurrently.

Data Type: integer
Default: 2
Connection URI Example: maxConnecting=3
MaxConnectionIdleTime
The length of time a connection can be idle before the driver closes it.

Data Type: TimeSpan
Default: 10 minutes
Connection URI Example: maxIdleTimeMS=300000
MaxConnectionLifeTime
The length of time a connection can be pooled before expiring.

Data Type: TimeSpan
Default: 30 minutes
Connection URI Example: maxLifetimeMS=50000
최대 연결 풀 크기
The greatest number of clients or connections the driver can create in its
connection pool. This count includes connections in use.

Data Type: integer
Default: 100
Connection URI Example: maxPoolSize=150
최소 연결 풀 크기
The number of connections the driver should create and keep in the connection
pool even when no operations are occurring. This count includes connections
in use.

Data Type: integer
Default: 0
Connection URI Example: minPoolSize=1
readConcern
The client's default read concern.
See read concern for more information.

Data Type: ReadConcern
Default: ReadConcern.Default
Connection URI Example: readConcernLevel=local
ReadEncoding
The UTF-8 encoding to use for string deserialization.
Strict encoding will throw an exception when an invalid UTF-8 byte sequence
is encountered.

Data Type: UTF8Encoding
Default: Strict encoding
Connection URI Example: N/A
읽기 설정
The client's default read-preference settings. MaxStaleness represents the
longest replication lag, in wall-clock time, that a secondary can experience and
still be eligible for server selection. Specifying -1 means no maximum.
See read preference for more information.

Data Type: ReadPreference
Default: ReadPreference.Primary
Connection URI Example:
readPreference=primaryPreferred
&maxStalenessSeconds=90
&readPreferenceTags=dc:ny,rack:1
You can include the readPreferenceTags parameter in the connection URI more than once. If you do, the client treats each instance as a separate tag set. The order of the tags in the URI determines the order for read preference. You can use this parameter only if the read-preference mode is not primary.
복제본 세트 이름
The name of the replica set to connect to.

Data Type: string
Default: null
Connection URI Example: replicaSet=yourReplicaSet
읽기 재시도
Enables retryable reads.

Data Type: boolean
Default: true
Connection URI Example: retryReads=false
RetryWrites
Enables retryable writes.

Data Type: boolean
Default: true
Connection URI Example: retryWrites=false
Scheme
Specifies whether to use the standard connection string format (MongoDB)
or the DNS seed list format (MongoDBPlusSrv).
See the MongoDB Manual for more
information about connection string formats.

If the DirectConnection property is set to true and you
try to use the DNS seed list format, the .NET/C# Driver will throw an
exception.

Default: ConnectionStringScheme.MongoDB
Connection URI Example: mongodb+srv://
서버
The host and port number where MongoDB is running.

Default: localhost:27017
Connection URI Example: mongodb://sample.host:27017
서버API
Allows opting into Stable API versioning. See
the MongoDB Manual for more information about
Stable API versioning.

Data Type: ServerApi
Default: null
Connection URI Example: N/A
서버
The cluster members where MongoDB is running.

Data Type: IEnumerable<MongoServerAddress>
Default: localhost:27017
Connection URI Example: mongodb://sample.host1:27017,sample.host2:27017
ServerSelectionTimeout
The length of time the driver tries to select a server before timing out.

Data Type: TimeSpan
Default: 30 seconds
Connection URI Example: serverSelectionTimeoutMS=15000
소켓 타임아웃
The length of time the driver tries to send or receive on a socket before
timing out.

Data Type: TimeSpan
Default: OS default
Connection URI Example: socketTimeoutMS=0
SRVmax 호스트
The greatest number of SRV results to randomly select when initially populating
the seedlist or, during SRV polling, adding new hosts to the topology.

You can use this property only if the connection-string scheme is set
to ConnectionStringScheme.MongoDBPlusSrv. You cannot use it when connecting
to a replica set.

Data Type: integer
Default: 0
Connection URI Example: srvMaxHosts=3
SslSettings
TLS/SSL options, including client certificates, revocation handling, and
enabled and disabled TLS/SSL protocols.

If SslSettings.CheckCertificateRevocation is set to false and
AllowInsecureTls is set to true, the .NET/C# Driver will throw
an exception.

Data Type: SslSettings
Default: null
Connection URI Example: tlsDisableCertificateRevocationCheck=false
UseTls
Specifies whether to require TLS for connections to the server. If you use
a scheme of "mongodb+srv" or specify other TLS options,
this option defaults to true.

Data Type: boolean
Default: false
Connection URI Example: tls=true
대기열 시간 초과
The length of time the driver tries to check out a connection from a
server's connection pool before timing out.

Data Type: TimeSpan
Default: 2 minutes
Connection URI Example: waitQueueTimeoutMS=0
writeConcern
The default write-concern settings, including write timeout and
journaling, for the client.
See write concern for more information.

Data Type: WriteConcern
Default: WriteConcern.Acknowledged
Connection URI Example: w=majority&wTimeoutMS=0&journal=true
쓰기 인코딩
Specifies whether UTF-8 string serialization is strict or lenient. With strict
encoding, the driver will throw an exception when it encounters an invalid
UTF-8 byte sequence.

Data Type: UTF8Encoding
Default: Strict encoding
Connection URI Example: N/A

돌아가기

연결 가이드