개요
이 페이지에서는 .NET/ C# 드라이버 에서 사용할 수 있는 연결 옵션과 이를 MongoDB 연결에 적용 방법을 설명합니다.
연결 옵션 지정 방법
다음 섹션에서는 연결 옵션을 지정하는 방법에 대해 설명합니다.
연결 URI 사용
연결 URI를 MongoClient 생성자에 전달하는 경우 문자열에 연결 옵션을 <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
쓰기 고려 (write concern) 의 j 구성 요소로, MongoDB 인스턴스가 디스크 저널 에 기록했다는 확인을 요청합니다. 기본값 은 writeConcernMajorityJournalDefault 설정의 값에 따라 달라집니다. j 옵션에 대해 자세히 학습하려면 MongoDB Server 매뉴얼에서 쓰기 고려 를 참조하세요.
var builder = new MongoUrlBuilder { Journal = true };
w
쓰기 고려 (write concern) 의 w 구성 요소로, 쓰기 (write) 작업이 지정된 수의 MongoDB 인스턴스로 전파되었음을 확인 요청합니다. 기본값 은 중재자 및 투표 노드 수에 따라 "majority" 또는 1입니다. w 옵션에 대해 자세히 학습하려면 MongoDB Server 매뉴얼에서 쓰기 고려 를 참조하세요.
var builder = new MongoUrlBuilder { W = 2 };
w 시간 초과
쓰기 고려 (write concern) 의 wtimeout 구성 요소로, 쓰기 고려 (write concern) 대한 시간 제한을 지정합니다. 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" };
인증 소스
클라이언트 를 인증할 소스입니다.
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 로 설정하다 하면 운전자 실행 환경에 따라 모니터링 모드 결정됩니다. 운전자 Amazon Web Services 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 로 설정하다 하면 운전자 실행 환경에 따라 모니터링 모드 결정됩니다. 운전자 Amazon Web Services 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 문서를 참조하세요.