개요
이 페이지에서는 .NET/ C# 드라이버 에서 사용할 수 있는 연결 옵션과 이를 MongoDB 연결에 적용 방법을 설명합니다.
연결 옵션 지정 방법
다음 섹션에서는 연결 옵션을 지정하는 방법에 대해 설명합니다.
연결 URI 사용
연결 URI를 MongoClient
생성자에 전달하는 경우 string 에 연결 옵션을 <name>=<value>
쌍으로 포함할 수 있습니다. 다음 예시 에서 연결 URI에는 값이 60000
인 connectTimeoutMS
옵션과 값이 true
인 tls
옵션이 포함되어 있습니다.
const string uri = "mongodb+srv:/localhost:27017/?connectTimeoutMS=60000&tls=true";
연결 URI에서 지정할 수 있는 옵션에 대해 자세히 학습 MongoDB Server 매뉴얼에서연결 문자열 옵션을 참조하세요.
MongoClientSettings 사용
MongoClientSettings
객체를 사용하여 연결 URI가 아닌 코드에서 연결 설정을 구성할 수 있습니다. 이러한 방식으로 연결을 구성하면 런타임에 설정을 더 쉽게 변경할 수 있고, 컴파일 중에 오류를 포착하는 데 도움이 되며, 연결 URI보다 더 많은 구성 옵션을 제공할 수 있습니다.
MongoClientSettings
객체 에서 연결 옵션을 설정하다 하려면 다음 단계를 수행합니다.
MongoClientSettings
클래스의 인스턴스 만들기인스턴스 의 속성을 설정하여 연결을 구성합니다.
인스턴스
MongoClient
생성자에 전달
다음 코드 예시 앞의 단계를 수행하는 방법을 보여줍니다.
var settings = new MongoClientSettings() { Scheme = ConnectionStringScheme.MongoDBPlusSrv, Server = new MongoServerAddress("localhost", 27017), ConnectTimeout = TimeSpan.FromMilliseconds(60000), UseTls = true }; var client = new MongoClient(settings);
다음 예시 와 같이 MongoClientSettings.FromConnectionString()
메서드를 호출하고 연결 문자열 전달하여 연결 문자열 에서 MongoClientSettings
객체 만들 수도 있습니다. 이는 연결 문자열 이미 있지만 일부 설정을 프로그래밍 방식으로 수정하려는 경우 또는 연결 문자열 에서 사용할 수 없는 설정을 지정해야 하는 경우에 유용합니다.
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var settings = MongoClientSettings.FromConnectionString(connectionUri); settings.ServerApi = new ServerApi(ServerApiVersion.V1); var client = new MongoClient(settings);
또는 다음 예시 와 같이 MongoClientSettings.FromUrl()
메서드를 호출하고 MongoUrl
객체 전달하여 MongoUrl
객체 에서 MongoClientSettings
객체 만들 수 있습니다. 이 기능은 이미 MongoUrl
객체 있지만 MongoUrl
클래스에서 사용할 수 없는 설정을 지정하려는 경우에 유용합니다.
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var url = new MongoUrl(connectionUri); var settings = MongoClientSettings.FromUrl(url); settings.ServerApi = new ServerApi(ServerApiVersion.V1); var client = new MongoClient(settings);
MongoUrlBuilder 사용
MongoUrlBuilder
객체 사용하여 MongoUrl
객체 에 대한 연결 설정을 만들고 구성할 수 있습니다. MongoUrl
는 강력한 형식의 연결 URI 표현이며, 다른 소스에서 직접 연결 URI를 읽을 때 유용합니다. MongoUrl
객체 사용하면 두 클래스에 서로 다른 속성과 메서드가 포함되어 있지만 MongoClientSettings
객체 사용하는 것과 동일한 이점이 많이 있습니다.
MongoUrlBuilder
객체 사용하려면 클래스의 인스턴스 만들고 필요한 구성 속성을 설정하다 . MongoUrlBuilder
에서 MongoUrl
객체 생성하려면 MongoUrlBuilder.ToMongoUrl()
메서드를 호출합니다. MongoUrl
객체 MongoClient
생성자에 전달할 수 있습니다. 다음 코드 예시 이 프로세스 보여줍니다.
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var builder = new MongoUrlBuilder(connectionUri) { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream }; var url = builder.ToMongoUrl(); var client = new MongoClient(url);
연결 옵션
다음 섹션에서는 .NET/ C# 드라이버 에서 사용할 수 있는 연결 옵션과 MongoClientSettings
또는 MongoUrlBuilder
객체 사용하여 연결 옵션을 지정하는 방법을 설명합니다.
복제본 세트 옵션
DirectConnection
모든 작업을 호스팅하다 로 강제 디스패치할지 여부를 지정합니다. 이 옵션을 지정하면 운전자 DNS 시드 목록 연결 형식을 허용하지 않습니다. 대신 표준 연결 URI 형식을 사용해야 합니다. 기본값 은 false
입니다.
호스팅하다 이름을 두 개 이상 지정하는 경우 이 속성 false
(으)로 설정하다 해야 합니다.
var settings = new MongoClientSettings { DirectConnection = true, };
복제본 세트 이름
연결할 복제본 세트 의 이름입니다. 기본값 은 null
입니다.
var settings = new MongoClientSettings { ReplicaSetName = "yourReplicaSet", };
DirectConnection
모든 작업을 호스팅하다 로 강제 디스패치할지 여부를 지정합니다. 이 옵션을 지정하면 운전자 DNS 시드 목록 연결 형식을 허용하지 않습니다. 대신 표준 연결 URI 형식을 사용해야 합니다. 기본값 은 false
입니다.
호스팅하다 이름을 두 개 이상 지정하는 경우 이 속성 false
(으)로 설정하다 해야 합니다.
var builder = new MongoUrlBuilder { DirectConnection = true, };
복제본 세트 이름
연결할 복제본 세트 의 이름입니다. 기본값 은 null
입니다.
var builder = new MongoUrlBuilder { ReplicaSetName = "yourReplicaSet", };
TLS 옵션
AllowInsecureTls
TLS 제약 조건을 최대한 완화할지 여부를 지정합니다. 여기에는 유효하지 않은 인증서 또는 호스트 이름 불일치를 허용하는 것이 포함될 수 있습니다. 기본값 은 false
입니다.
이 속성 true
로 설정하다 있고 SslSettings.CheckCertificateRevocation
가 false
로 설정하다 있으면 .NET/ C# 드라이버 예외가 발생합니다.
다음 코드 예시 이 옵션을 true
로 설정하다 방법을 보여줍니다.
var settings = new MongoClientSettings { AllowInsecureTls = true, };
SslSettings
클라이언트 인증서, 해지 처리, TLS/SSL 프로토콜 활성화 및 비활성화를 포함한 TLS/SSL 옵션. 기본값 은 null
입니다.
SslSettings.CheckCertificateRevocation
가 false
로 설정하다 되고 AllowInsecureTls
가 true
로 설정하다 경우 .NET/ C# 드라이버 예외가 발생합니다.
var settings = new MongoClientSettings(); settings.SslSettings = new SslSettings() { CheckCertificateRevocation = false, ClientCertificateSelectionCallback = new LocalCertificateSelectionCallback() { ... }, ClientCertificates = new List<X509Certificate>() { ... }, EnabledSslProtocols = SslProtocols.Tls13, ServerCertificateValidationCallback = new RemoteCertificateValidationCallback() { ... } };
UseTls
서버 연결에 TLS를 요구할지 여부를 지정합니다. "mongodb+srv"
체계를 사용하거나 다른 TLS 옵션을 지정하는 경우 이 옵션의 기본값은 true
입니다. 그렇지 않으면 기본값은 false
입니다.
var settings = new MongoClientSettings { UseTls = true, };
AllowInsecureTls
TLS 제약 조건을 최대한 완화할지 여부를 지정합니다. 여기에는 유효하지 않은 인증서 또는 호스트 이름 불일치를 허용하는 것이 포함될 수 있습니다. 기본값 은 false
입니다.
이 속성 true
로 설정하다 있고 SslSettings.CheckCertificateRevocation
가 false
로 설정하다 있으면 .NET/ C# 드라이버 예외가 발생합니다.
다음 코드 예시 이 옵션을 true
로 설정하다 방법을 보여줍니다.
var builder = new MongoUrlBuilder { AllowInsecureTls = true, };
TlsDisableCertificateReventionCheck
TLS 핸드셰이크 중 인증서 해지 확인을 비활성화할지 여부입니다. 기본값 은 false
입니다.
var builder = new MongoUrlBuilder { TlsDisableCertificateRevocationCheck = true };
UseTls
서버 연결에 TLS를 요구할지 여부를 지정합니다. "mongodb+srv"
체계를 사용하거나 다른 TLS 옵션을 지정하는 경우 이 옵션의 기본값은 true
입니다. 그렇지 않으면 기본값은 false
입니다.
var builder = new MongoUrlBuilder { UseTls = true, };
타임아웃 옵션
ConnectTimeout
운전자 시간이 초과되기 전에 서버 에 대한 단일 TCP 소켓 연결을 설정하려고 시도하는 시간입니다. 기본값 은 30 초입니다.
var settings = new MongoClientSettings { ConnectTimeout = TimeSpan.FromSeconds(60), };
소켓 타임아웃
운전자 시간이 초과되기 전에 소켓에서 전송 또는 수신을 시도하는 시간입니다. 기본값 은 운영 체제에서 설정하다 .
var settings = new MongoClientSettings { ConnectTimeout = TimeSpan.FromSeconds(60), };
ConnectTimeout
운전자 시간이 초과되기 전에 서버 에 대한 단일 TCP 소켓 연결을 설정하려고 시도하는 시간입니다. 기본값 은 30 초입니다.
var builder = new MongoUrlBuilder { ConnectTimeout = TimeSpan.FromSeconds(60), };
소켓 타임아웃
운전자 시간이 초과되기 전에 소켓에서 전송 또는 수신을 시도하는 시간입니다. 기본값 은 운영 체제에서 설정하다 .
var builder = new MongoUrlBuilder { SocketTimeout = TimeSpan.FromSeconds(60), };
압축 옵션
연결 풀 옵션
MaxConnecting
드라이버의 연결 풀 동시에 설정할 수 있는 최대 연결 수입니다. 기본값 은 2
입니다.
var settings = new MongoClientSettings { MaxConnecting = 3, };
MaxConnectionIdleTime
운전자 연결을 닫기 전에 연결이 유휴 상태일 수 있는 시간입니다. 기본값 은 10 분입니다.
var settings = new MongoClientSettings { MaxConnectionIdleTime = TimeSpan.FromMinutes(8), };
MaxConnectionLifeTime
연결이 만료되기 전에 풀링될 수 있는 시간입니다. 기본값 은 30 분입니다.
var settings = new MongoClientSettings { MaxConnectionLifeTime = TimeSpan.FromMinutes(40), };
최대 연결 풀 크기
운전자 연결 풀 에서 만들 수 있는 최대 클라이언트 또는 연결 수입니다. 이 수에는 사용 중인 연결이 포함됩니다. 기본값 은 100
입니다.
var settings = new MongoClientSettings { MaxConnectionPoolSize = 150, };
최소 연결 풀 크기
작업이 발생하지 않는 경우에도 운전자 연결 풀 에서 생성하고 유지하는 연결의 수입니다. 이 수에는 사용 중인 연결이 포함됩니다. 기본값 은 0
입니다.
var settings = new MongoClientSettings { MinConnectionPoolSize = 3, };
대기열 시간 초과
운전자 시간이 초과되기 전에 서버의 연결 풀 에서 연결을 체크아웃하려고 시도하는 시간입니다. 기본값 은 2분입니다.
var settings = new MongoClientSettings { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
MaxConnecting
드라이버의 연결 풀 동시에 설정할 수 있는 최대 연결 수입니다. 기본값 은 2
입니다.
var builder = new MongoUrlBuilder { MaxConnecting = 3, };
MaxConnectionIdleTime
운전자 연결을 닫기 전에 연결이 유휴 상태일 수 있는 시간입니다. 기본값 은 10 분입니다.
var builder = new MongoUrlBuilder { MaxConnectionIdleTime = TimeSpan.FromMinutes(8), };
MaxConnectionLifeTime
연결이 만료되기 전에 풀링될 수 있는 시간입니다. 기본값 은 30 분입니다.
var builder = new MongoUrlBuilder { MaxConnectionLifeTime = TimeSpan.FromMinutes(40), };
최대 연결 풀 크기
운전자 연결 풀 에서 만들 수 있는 최대 클라이언트 또는 연결 수입니다. 이 수에는 사용 중인 연결이 포함됩니다. 기본값 은 100
입니다.
var builder = new MongoUrlBuilder { MaxConnectionPoolSize = 150, };
최소 연결 풀 크기
작업이 발생하지 않는 경우에도 운전자 연결 풀 에서 생성하고 유지하는 연결의 수입니다. 이 수에는 사용 중인 연결이 포함됩니다. 기본값 은 0
입니다.
var builder = new MongoUrlBuilder { MinConnectionPoolSize = 3, };
대기열 시간 초과
운전자 시간이 초과되기 전에 서버의 연결 풀 에서 연결을 체크아웃하려고 시도하는 시간입니다. 기본값 은 2분입니다.
var builder = new MongoUrlBuilder { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
쓰기 고려 옵션
writeConcern
클라이언트 에 대한 쓰기 (write) 제한 시간 및 저널링을 포함한 기본값 쓰기 고려 설정입니다. 기본값 은 입니다.WriteConcern.Acknowledged
자세한 내용은 MongoDB Server 매뉴얼의 쓰기 고려를 참조하세요.
var settings = new MongoClientSettings(); settings.WriteConcern = MongoDB.Driver.WriteConcern.Acknowledged; settings.WriteConcern = new WriteConcern( w: 1, wTimeout: new TimeSpan(0, 0, 0, 30, 0), fsync: true, journal: true );
FSync
쓰기 고려 (write concern) 의 FSync 구성 요소입니다. 기본값 은 입니다.false
fsync
명령에 대해 자세히 학습 MongoDB Server 매뉴얼에서 fsync 참조하세요.
var builder = new MongoUrlBuilder { FSync = true };
Journal
j
쓰기 고려 (write concern) 의 구성 writeConcernMajorityJournalDefault
요소로, MongoDB 인스턴스가 디스크 저널 에 기록했다는 확인을 요청합니다. 기본값 은 설정의 값에 따라 달라집니다.j
옵션에 대해 자세히 학습 MongoDB Server 매뉴얼에서 쓰기 고려를 참조하세요.
var builder = new MongoUrlBuilder { Journal = true };
w
쓰기 고려 (write concern) 의 구성 요소로, 쓰기 (write) 작업이 지정된 수의 MongoDB 인스턴스로 전파되었음을 확인 요청합니다. 기본값 은 w
"majority"
1
중재자 및 투표 노드 수에 따라 또는 입니다.w
옵션에 대해 자세히 학습 MongoDB Server 매뉴얼에서 쓰기 고려를 참조하세요.
var builder = new MongoUrlBuilder { W = 2 };
WTimeout
쓰기 고려 (write concern) 의 구성 요소로, 쓰기 고려 (write concern) 대한 시간 제한을 지정합니다.wtimeout
wtimeout
옵션에 대해 자세히 학습 MongoDB Server 매뉴얼의 쓰기 고려를 참조하세요.
var builder = new MongoUrlBuilder { WTimeout = TimeSpan.FromSeconds(5) };
읽기 고려 옵션
readConcern
클라이언트의 읽기 고려 (read concern). 기본값 은 입니다.ReadConcern.Default
자세한 내용은 MongoDB Server 매뉴얼의 읽기 고려를 참조하세요.
var settings = new MongoClientSettings { ReadConcern = MongoDB.Driver.ReadConcern.Local, };
readConcernLevel
클라이언트의 읽기 고려 (read concern) 수준입니다. 기본값 은 ReadConcern.Local
입니다. 자세한 내용은 읽기 고려 (read concern) 참조하세요.
var builder = new MongoUrlBuilder { ReadConcernLevel = MongoDB.Driver.ReadConcernLevel.Local, };
읽기 기본 설정 옵션
읽기 설정
MaxStaleness
클라이언트의 기본값 읽기 설정입니다. 세컨더리 경험할 수 있고 여전히 서버 선택 대상이 될 수 있는 벽시계 시간으로 가장 긴 복제 지연 나타냅니다. 기본값 은 ReadPreference.Primary
입니다. 를 지정하면 -1
최대값이 없습니다. 자세한 내용은 MongoDB Server 매뉴얼의 읽기 설정을 참조하세요.
var settings = new MongoClientSettings { ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred, };
MaxStaleness
클라이언트의 기본값 읽기 설정입니다. 세컨더리 경험할 수 있고 여전히 서버 선택 대상이 될 수 있는 벽시계 시간으로 가장 긴 복제 지연 나타냅니다. 기본값 은 ReadPreference.Primary
입니다. 를 지정하면 -1
최대값이 없습니다. 자세한 내용은 MongoDB Server 매뉴얼의 읽기 설정을 참조하세요.
var builder = new MongoUrlBuilder { ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred, };
인증 옵션
자격 증명
운전자 서버 에 인증하는 방법에 대한 설정입니다. 여기에는 인증 자격 증명, 메커니즘, 소스 및 기타 설정이 포함됩니다. 기본값 은 null
입니다.
인증 메커니즘 지정하지 않으면 운전자 SCRAM-SHA-1
SCRAM-SHA-256
서버 버전에 따라 또는 를 사용합니다.사용 가능한 인증 메커니즘은 인증메커니즘을 참조하세요.
var settings = new MongoClientSettings { Credential = MongoCredential.CreatePlainCredential( databaseName: "admin", username: "user", password: "password" ) };
AuthenticationMechanism
운전자 MongoDB Server 에 인증하는 데 사용하는 메커니즘입니다. 인증 메커니즘 지정하지 않으면 운전자 서버 버전에 따라 SCRAM-SHA-1
또는 를 SCRAM-SHA-256
사용합니다. 사용 가능한 인증 메커니즘은 인증 메커니즘을 참조하세요.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
AuthenticationMechanismProperties
AuthenticationMechanism
속성 에 지정된 인증 메커니즘 에 대한 구성 설정입니다.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
AuthenticationSource
클라이언트 를 인증할 소스입니다.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
비밀번호
인증 에 사용할 비밀번호입니다.
var builder = new MongoUrlBuilder { Username = "user", Password = "password" };
사용자 이름
인증 에 사용할 사용자 이름 .
var builder = new MongoUrlBuilder { Username = "user", Password = "password" };
서버 선택/검색 옵션
HeartbeatInterval
정기적인 서버 모니터링 검사 사이의 간격입니다. 500 밀리초 이상이어야 합니다. 기본값 은 10000
밀리초(10 초)입니다.
var settings = new MongoClientSettings { HeartbeatInterval = TimeSpan.FromSeconds(5) };
HeartbeatTimeout
모니터링 소켓이 시간 초과되기 전에 유휴 상태일 수 있는 시간입니다. 기본값 은 ConnectTimeout
속성 의 값입니다.
var settings = new MongoClientSettings { HeartbeatTimeout = TimeSpan.FromSeconds(5) };
LocalThreshold
서버 자격에 대한 지연 시간 창 . 서버의 왕복 시간이 가장 빠른 서버의 왕복 시간에 이 값을 더한 것보다 오래 걸리는 경우 해당 서버 선택할 수 없습니다. 기본값 은 15 밀리초입니다.
var settings = new MongoClientSettings { LocalThreshold = TimeSpan.FromSeconds(15) };
ServerSelectionTimeout
서버 자격에 대한 지연 시간 창 . 서버의 왕복 시간이 가장 빠른 서버의 왕복 시간에 이 값을 더한 것보다 오래 걸리는 경우 해당 서버 선택할 수 없습니다. 기본값 은 15 밀리초입니다.
var settings = new MongoClientSettings { ServerSelectionTimeout = TimeSpan.FromSeconds(30) };
HeartbeatInterval
정기적인 서버 모니터링 검사 사이의 간격입니다. 500 밀리초 이상이어야 합니다. 기본값 은 10000
밀리초(10 초)입니다.
var builder = new MongoUrlBuilder { HeartbeatInterval = TimeSpan.FromSeconds(5) };
HeartbeatTimeout
모니터링 소켓이 시간 초과되기 전에 유휴 상태일 수 있는 시간입니다. 기본값 은 ConnectTimeout
속성 의 값입니다.
var builder = new MongoUrlBuilder { HeartbeatTimeout = TimeSpan.FromSeconds(5) };
LocalThreshold
서버 자격에 대한 지연 시간 창 . 서버의 왕복 시간이 가장 빠른 서버의 왕복 시간에 이 값을 더한 것보다 오래 걸리는 경우 해당 서버 선택할 수 없습니다. 기본값 은 15 밀리초입니다.
var builder = new MongoUrlBuilder { LocalThreshold = TimeSpan.FromSeconds(15) };
ServerSelectionTimeout
서버 자격에 대한 지연 시간 창 . 서버의 왕복 시간이 가장 빠른 서버의 왕복 시간에 이 값을 더한 것보다 오래 걸리는 경우 해당 서버 선택할 수 없습니다. 기본값 은 15 밀리초입니다.
var builder = new MongoUrlBuilder { ServerSelectionTimeout = TimeSpan.FromSeconds(30) };
인코딩 옵션
ReadEncoding
문자열 역직렬화에 사용할 UTF-8 인코딩입니다. 기본값 은 엄격한 인코딩으로, 유효하지 않은 UTF-8 바이트 시퀀스가 발생하면 운전자 예외를 발생시킵니다.
var settings = new MongoClientSettings { ReadEncoding = new UTF8Encoding( encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true) };
쓰기 인코딩
문자열 직렬화에 사용할 UTF-8 인코딩입니다. 기본값 은 엄격한 인코딩으로, 유효하지 않은 UTF-8 바이트 시퀀스가 발생하면 운전자 예외를 발생시킵니다.
var settings = new MongoClientSettings { WriteEncoding = new UTF8Encoding( encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true) };
참고
MongoClientSettings 전용
ReadEncoding
및 WriteEncoding
속성은 MongoClientSettings
클래스에서만 사용할 수 있습니다.
Stable API
서버API
Stable API 버전 관리를 선택할 수 있습니다. 기본값 은 입니다.null
Stable API 버전 관리에 대한 자세한 내용은 MongoDB Server 매뉴얼의 Stable API 참조하세요.
var settings = new MongoClientSettings { ServerApi = new ServerApi( ServerApiVersion.V1, strict: true, deprecationErrors: true), };
참고
MongoClientSettings 전용
ServerApi
속성 MongoClientSettings
클래스에서만 사용할 수 있습니다.
재시도 옵션
기타 옵션
애플리케이션 이름
운전자 연결 핸드셰이크의 일부로 클라이언트 메타데이터 에서 서버 에 전달하는 앱 이름입니다. 연결이 설정되면 서버 이 값을 MongoDB 로그에 출력합니다. 이 값은 느린 쿼리 로그 및 프로필 컬렉션에도 기록됩니다. 기본값 은 null
입니다.
var settings = new MongoClientSettings { ApplicationName = "yourAppName", };
자동 암호화 옵션
자동 클라이언트 사이드 암호화 위한 설정입니다. 기본값 은 null
입니다. 클라이언트 사이드 암호화 에 대해 자세히 학습 사용 중 암호화 참조하세요.
var settings = new MongoClientSettings { AutoEncryptionOptions = new AutoEncryptionOptions( keyVaultNamespace: new CollectionNamespace( databaseName: "keyvault", collectionName: "datakeys"), kmsProviders: new Dictionary<string, IReadOnlyDictionary<string, object>> () { { "local", new Dictionary<string, object> () { { "key", "<base64-encoded-key>" } } } } ), };
클러스터 구성자
소켓, TLS, 클러스터 등에 대한 낮은 수준의 구성 옵션입니다. 기본값 은 null
입니다.
var settings = new MongoClientSettings { ClusterConfigurator = builder => { builder .Subscribe<ClusterOpenedEvent>(e => { Console.WriteLine($"Cluster opened: Cluster ID = {e.ClusterId}"); }) .Subscribe<ClusterDescriptionChangedEvent>(e => { Console.WriteLine($"Cluster description changed: {e.NewDescription}"); }); } };
IPv6
호스팅하다 주소 IPv6 형식인지 여부를 지정합니다. 기본값 은 false
입니다.
var settings = new MongoClientSettings { IPv6 = true, };
IsFrozen
설정이 고정되었는지 여부를 나타내는 읽기 전용 옵션입니다. 고정 설정은 변경할 수 없습니다. 기본값 은 false
입니다.
var settings = new MongoClientSettings(); if (!settings.IsFrozen) { settings.RetryReads = false; }
팁
동결 설정
Freeze() 메서드를 호출하여 MongoClientSettings
객체 의 설정을 동결할 수 있습니다. 이렇게 하면 설정을 더 이상 변경할 수 없습니다.
또는 FrozenCopy() 메서드를 호출하여 MongoClientSettings
현재 설정을 동결한 상태로 새 객체 만들 수 있습니다.
라이브러리 정보
.NET/ C# 드라이버 기반으로 하는 사용자 지정 라이브러리의 이름과 버전입니다. 운전자 이 정보를 서버 로 보냅니다.
var settings = new MongoClientSettings { LibraryInfo = new LibraryInfo("customLibraryName", "1.0.0") };
로드 밸런싱
운전자 로드 밸런서 에 연결 중인지 여부를 지정합니다. 다음 조건이 모두 충족되는 경우에만 이 속성 true
로 설정하다 수 있습니다.
호스팅하다 이름을 하나만 지정합니다.
복제본 세트 에 연결하지 않습니다.
SrvMaxHosts
속성 사용하지 않습니다.DirectConnection
속성 사용하지 않습니다.
기본값은 false
입니다.
var settings = new MongoClientSettings { LoadBalanced = true, };
로깅 설정
로깅에 사용되는 설정입니다. 기본값 은 null
입니다.
var settings = new MongoClientSettings { LoggingSettings = new LoggingSettings( LoggerFactory.Create(l => l.SetMinimumLevel(LogLevel.Debug))) };
Scheme
표준 연결 문자열 형식()을 사용할지 아니면MongoDB
DNS 시드 목록 형식()을 사용할지MongoDBPlusSrv
지정합니다. 이 속성 에 사용할 수 있는 값은 ConnectionStringScheme 열거형 에 정의되어 있습니다. 기본값 은 입니다.ConnectionStringScheme.MongoDB
연결 문자열 형식에 대한 자세한 내용은 MongoDB Server 매뉴얼의 연결 문자열을 참조하세요.
DirectConnection
속성 true
로 설정하다 있고 DNS 시드 목록 형식을 사용하려고 하면 .NET/ C# 드라이버 예외가 발생합니다.
var settings = new MongoClientSettings { Scheme = ConnectionStringScheme.MongoDBPlusSrv, };
서버
MongoDB 실행 호스팅하다 및 포트 번호입니다. 기본값 은 localhost:27017
입니다.
var settings = new MongoClientSettings { Server = new MongoServerAddress("localhost", 27017) };
ServerMonitoringMode
사용할 서버 모니터링 프로토콜 지정합니다. 이 속성 에 사용할 수 있는 값은 ServerMonitoringMode 열거형 에 정의되어 있습니다. 기본값 은 Auto
입니다.
이 옵션을 Auto
로 설정하다 하면 운전자 실행 중인 환경에 따라 모니터링 모드 결정됩니다. 운전자 AWS Lambda 와 같은 FaaS(서비스로서의 기능) 환경에서 폴링 모드 사용하고 다른 환경에서는 스트리밍 모드 사용합니다.
var settings = new MongoClientSettings { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream };
서버
MongoDB 실행 클러스터 멤버입니다. 기본값 은 localhost:27017
입니다.
var settings = new MongoClientSettings { Servers = new List<MongoServerAddress>() { new ("localhost", 27017), new ("localhost", 27018) } };
SRVmax 호스트
시드 목록을 처음 채울 때 또는 SRV 폴링 중에 토폴로지 에 새 호스트를 추가할 때 무작위로 선택할 수 있는 SRV 결과의 최대 개수입니다. 기본값 은 0
입니다.
이 속성 연결 문자열 체계가 ConnectionStringScheme.MongoDBPlusSrv
로 설정하다 경우에만 사용할 수 있습니다. 복제본 세트 에 연결할 때는 사용할 수 없습니다.
var settings = new MongoClientSettings { SrvMaxHosts = 5 };
SrvServiceName
운전자 시드 목록을 구성하기 위해 검색하는 SRV 리소스 레코드의 서비스 이름입니다. 운전자 서비스 이름을 사용하여 다음 형식과 일치하는 SRV URI를 생성합니다.
_{srvServiceName}._tcp.{hostname}.{domainname}
이 속성 검색 및 폴링 시 SRV 조회에 대한 기본값 서비스 이름을 재정의합니다. 기본값 은 "mongodb"
입니다.
이 속성 연결 문자열 체계가 ConnectionStringScheme.MongoDBPlusSrv
로 설정하다 경우에만 사용할 수 있습니다. 복제본 세트 에 연결할 때는 사용할 수 없습니다.
var settings = new MongoClientSettings { SrvServiceName = "yourServiceName" };
번역 옵션
LINQ 쿼리를 쿼리 API 로 변환하기 위한 옵션(예: MongoDB Server 버전)을 지정합니다. 기본값 은 null
입니다.
var settings = new MongoClientSettings { TranslationOptions = new ExpressionTranslationOptions() { CompatibilityLevel = ServerVersion.Server80, EnableClientSideProjections = true } };
애플리케이션 이름
운전자 연결 핸드셰이크의 일부로 클라이언트 메타데이터 에서 서버 에 전달하는 앱 이름입니다. 연결이 설정되면 서버 이 값을 MongoDB 로그에 출력합니다. 이 값은 느린 쿼리 로그 및 프로필 컬렉션에도 기록됩니다. 기본값 은 null
입니다.
var builder = new MongoUrlBuilder { ApplicationName = "yourAppName", };
DatabaseName
클라이언트 연결하는 데이터베이스 의 이름입니다.
var builder = new MongoUrlBuilder { DatabaseName = "test_database" };
IPv6
호스팅하다 주소 IPv6 형식인지 여부를 지정합니다. 기본값 은 false
입니다.
var builder = new MongoUrlBuilder { IPv6 = true, };
로드 밸런싱
운전자 로드 밸런서 에 연결 중인지 여부를 지정합니다. 다음 조건이 모두 충족되는 경우에만 이 속성 true
로 설정하다 수 있습니다.
호스팅하다 이름을 하나만 지정합니다.
복제본 세트 에 연결하지 않습니다.
SrvMaxHosts
속성 사용하지 않습니다.DirectConnection
속성 사용하지 않습니다.
기본값은 false
입니다.
var builder = new MongoUrlBuilder { LoadBalanced = true, };
Scheme
표준 연결 문자열 형식()을 사용할지 아니면MongoDB
DNS 시드 목록 형식()을 사용할지MongoDBPlusSrv
지정합니다. 이 속성 에 사용할 수 있는 값은 ConnectionStringScheme 열거형 에 정의되어 있습니다. 기본값 은 입니다.ConnectionStringScheme.MongoDB
연결 문자열 형식에 대한 자세한 내용은 MongoDB Server 매뉴얼의 연결 문자열을 참조하세요.
DirectConnection
속성 true
로 설정하다 있고 DNS 시드 목록 형식을 사용하려고 하면 .NET/ C# 드라이버 예외가 발생합니다.
var builder = new MongoUrlBuilder { Scheme = ConnectionStringScheme.MongoDBPlusSrv, };
서버
MongoDB 실행 호스팅하다 및 포트 번호입니다. 기본값 은 localhost:27017
입니다.
var builder = new MongoUrlBuilder { Server = new MongoServerAddress("localhost", 27017) };
ServerMonitoringMode
사용할 서버 모니터링 프로토콜 지정합니다. 이 속성 에 사용할 수 있는 값은 ServerMonitoringMode 열거형 에 정의되어 있습니다. 기본값 은 Auto
입니다.
이 옵션을 Auto
로 설정하다 하면 운전자 실행 중인 환경에 따라 모니터링 모드 결정됩니다. 운전자 AWS Lambda 와 같은 FaaS(서비스로서의 기능) 환경에서 폴링 모드 사용하고 다른 환경에서는 스트리밍 모드 사용합니다.
var builder = new MongoUrlBuilder { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream };
서버
MongoDB 실행 클러스터 멤버입니다. 기본값 은 localhost:27017
입니다.
var builder = new MongoUrlBuilder { Servers = new List<MongoServerAddress>() { new ("localhost", 27017), new ("localhost", 27018) } };
SRVmax 호스트
시드 목록을 처음 채울 때 또는 SRV 폴링 중에 토폴로지 에 새 호스트를 추가할 때 무작위로 선택할 수 있는 SRV 결과의 최대 개수입니다. 기본값 은 0
입니다.
이 속성 연결 문자열 체계가 ConnectionStringScheme.MongoDBPlusSrv
로 설정하다 경우에만 사용할 수 있습니다. 복제본 세트 에 연결할 때는 사용할 수 없습니다.
var builder = new MongoUrlBuilder { SrvMaxHosts = 5 };
SrvServiceName
운전자 시드 목록을 구성하기 위해 검색하는 SRV 리소스 레코드의 서비스 이름입니다. 운전자 서비스 이름을 사용하여 다음 형식과 일치하는 SRV URI를 생성합니다.
_{srvServiceName}._tcp.{hostname}.{domainname}
이 속성 검색 및 폴링 시 SRV 조회에 대한 기본값 서비스 이름을 재정의합니다. 기본값 은 "mongodb"
입니다.
이 속성 연결 문자열 체계가 ConnectionStringScheme.MongoDBPlusSrv
로 설정하다 경우에만 사용할 수 있습니다. 복제본 세트 에 연결할 때는 사용할 수 없습니다.
var builder = new MongoUrlBuilder { SrvServiceName = "yourServiceName" };
추가 정보
이 페이지에 사용된 유형에 대한 자세한 내용은 다음 API 문서를 참조하세요.