개요
이 가이드에서는 연결 string 과 MongoClient
객체를 사용하여 다양한 유형의 MongoDB deployment에 연결하는 방법을 배울 수 있습니다.
Atlas
MongoDB 에서 deployment에 Atlas 연결하려면 연결 에 다음 요소를 string 포함하세요.
Atlas cluster의 URL
MongoDB 사용자 이름
MongoDB 비밀번호
그런 다음 연결 string 을 MongoClient
생성자에 전달합니다.
팁
Atlas 드라이버 연결 가이드 에 따라 연결 string 을 검색합니다.
Atlas 에 연결할 때 Stable API 클라이언트 옵션을 사용하여 Atlas 를 새 버전의 MongoDB Server 로 업그레이드할 때 호환성이 손상되는 변경을 방지하는 것이 좋습니다. Stable API 기능 에 학습 보려면 Stable API 가이드 를 참조하세요.
다음 코드는 .NET/ C# 드라이버 사용하여 Atlas cluster 에 연결하는 방법을 보여줍니다. 또한 이 코드는 server_api
옵션을 사용하여 Stable API 버전을 지정합니다.
using MongoDB.Driver; using MongoDB.Bson; // Replace the placeholder with your Atlas connection string const string connectionUri = "<connection string>"; var settings = MongoClientSettings.FromConnectionString(connectionUri); // Sets the ServerApi field of the settings object to Stable API version 1 settings.ServerApi = new ServerApi(ServerApiVersion.V1); // Creates a new client and connects to the server var client = new MongoClient(settings); // Sends a ping to confirm a successful connection try { var result = client.GetDatabase("admin").RunCommand<BsonDocument>(new BsonDocument("ping", 1)); Console.WriteLine("Pinged your deployment. You successfully connected to MongoDB!"); } catch (Exception ex) { Console.WriteLine(ex);}
로컬 배포
로컬 MongoDB deployment에 연결하려면 localhost
을 호스트 이름으로 사용합니다. 기본적으로 mongod
프로세스는 포트 27017 에서 실행되지만, 배포서버에 맞게 사용자 지정할 수 있습니다.
다음 코드는 .NET/ C# 드라이버 사용하여 로컬 MongoDB deployment 에 연결하는 방법을 보여줍니다.
using MongoDB.Driver; // Sets the connection URI const string connectionUri = "mongodb://localhost:27017"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
복제본 세트
복제본 세트 에 연결하려면 연결 에 IP 복제본 세트 멤버의 호스트 이름(또는 주소)과 포트 번호를 string 지정합니다.
다음 코드는 .NET/ C# 드라이버 사용하여 세 개의 호스트가 포함된 복제본 세트 에 연결하는 방법을 보여줍니다.
using MongoDB.Driver; // Sets the connection URI than includes the list of hosts in the replica set const string connectionUri = "mongodb://host1:27017,host2:27017,host3:27017"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
참고
Docker에서의 복제본 세트
복제본 세트 Docker 에서 실행되면 MongoDB 엔드포인트를 하나만 노출할 수 있습니다. 이 경우 복제본 세트 검색할 수 없습니다. 연결 URI에 directConnection=false
을(를) 지정하거나 이 옵션을 설정하지 않은 상태로 두면 애플리케이션 연결 URI에 연결되지 않을 수 있습니다.
테스트 또는 개발 환경에서 directConnection=true
를 지정하여 복제본 세트에 연결할 수 있습니다. 프로덕션 환경에서는 Docker 가상 네트워크 외부에서 각 MongoDB 인스턴스에 액세스할 수 있도록 클러스터를 구성하는 것이 좋습니다.
복제본 세트 에 있는 호스트의 전체 목록을 제공할 수 없는 경우, 복제본 세트 에 있는 호스트 중 하나 이상을 지정하고 다른 호스트를 찾기 위해 자동 검색을 수행하도록 .NET/ C# 드라이버 에 지시할 수 있습니다. 운전자 자동 검색을 수행하도록 지시하려면 다음 작업 중 하나를 수행합니다.
복제본 세트의 이름을
replicaSet
매개변수의 값으로 지정합니다.directConnection
매개변수의 값으로false
를 지정합니다. 이 매개변수의 기본값은false
이므로 생략할 수도 있습니다.복제본 세트에 둘 이상의 호스트를 지정합니다.
다음 예시에서 드라이버는 샘플 연결 URI를 사용하여 host1
를 포함하여 서로 다른 세 호스트의 27017
포트에서 실행 중인 MongoDB 복제본 세트 sampleRS
에 연결합니다.
using MongoDB.Driver; // Sets the connection URI than includes the replica set name const string connectionUri = "mongodb://host1:27017/?replicaSet=sampleRS"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
참고
복제본 세트 이름 지정
운전자 모든 멤버의 호스트 이름이나 복제본 세트 이름을 지정하지 않고도 복제본 세트 멤버를 자동으로 검색할 수 있지만, 복제본 복제본 세트 올바르게 초기화되지 않는 코너 사례를 방지하려면 복제본 세트 이름을 지정하는 것이 좋습니다.
.NET/ C# 드라이버 클라이언트의 값 내에서 연결할 수 있는 배포 간에 작업의 부하를 균등하게 localThresholdMS
분산합니다. .NET/ C# 드라이버 여러 MongoDB 배포서버에서 작업의 부하를 분산하는 방법에 대해 자세히 학습 서버 선택 사용자 지정 가이드 참조하세요.
참고
MongoClient
생성자는 비블로킹 입니다. 복제본 세트에 연결하면 클라이언트가 백그라운드 스레드를 사용하여 복제본 세트에 연결하는 동안 생성자가 즉시 반환됩니다.
MongoClient
를 구성하고 해당 nodes
속성의 문자열 표현을 즉시 출력하는 경우, 클라이언트 복제본 세트 멤버에 연결하는 동안 목록이 비어 있을 수 있습니다.
단일 서버에 연결
전체 복제본 세트 가 아닌 복제본 세트 세트의 단일 서버 에 연결하려면 directConnection
연결 옵션의 값으로 false
를 지정합니다. MongoClient
생성자에 인수를 전달하거나 연결 문자열 의 매개변수를 사용하는 두 가지 방법으로 이 작업을 수행할 수 있습니다. MongoClientSettings 또는 Connection String 탭 선택하여 해당 코드를 확인합니다.
using MongoDB.Driver; var settings = MongoClientSettings.FromConnectionString("mongodb://host1:27017"); settings.DirectConnection = true; var client = new MongoClient(settings);
using MongoDB.Driver; const string connectionUri = "mongodb://host1:27017/?directConnection=true"; var client = new MongoClient(connectionUri);
DNS 서비스 검색
DNS 서비스 검색을 사용하여 연결하려는 서비스의 DNS SRV 기록 조회하려면 연결 문자열 에 SRV 연결 형식을 지정합니다. 또한 SRV 연결 형식을 활성화 .NET/ C# 드라이버 클라이언트 구성을 변경하지 않고도 새 호스트를 자동으로 다시 스캔합니다.
다음 코드는 SRV 연결 형식을 사용하는 연결 문자열 보여줍니다.
var uri = "mongodb+srv://<hostname>"
SRV 연결 형식에 대해 자세히 학습 MongoDB Server 매뉴얼의 SRV 연결 형식 항목을 참조하세요.
API 문서
이 가이드 에서 설명하는 유형에 대해 자세히 학습 다음 API 문서를 참조하세요.