개요
이 가이드에서는 연결 string 과 MongoClient 객체를 사용하여 다양한 유형의 MongoDB deployment에 연결하는 방법을 배울 수 있습니다.
Atlas
MongoDB 에서 deployment에 Atlas 연결하려면 연결 에 다음 요소를 string 포함하세요.
Atlas cluster의 URL
MongoDB 사용자 이름
MongoDB 비밀번호
그런 다음 연결 문자열 MongoClient.create() 메서드에 전달합니다.
팁
Atlas 드라이버 연결 가이드 에 따라 연결 string 을 검색합니다.
Atlas 에 연결할 때는 Stable API 클라이언트 옵션을 사용하여 Atlas 새 버전의 MongoDB 서버 로 업그레이드할 때 호환성이 손상되는 변경이 발생하지 않도록 하는 것이 좋습니다. Stable API 기능에 대해 자세히 학습하려면 Stable API 페이지를 참조하세요.
다음 코드는 Kotlin 드라이버를 사용하여 Atlas 클러스터에 연결하는 방법을 보여줍니다. 또한 serverApi 옵션을 사용하여 Stable API 버전을 지정합니다.
// Replace the placeholder with your Atlas connection string val uri = "<connection string>" // Construct a ServerApi instance using the ServerApi.builder() method val serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .build() val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .serverApi(serverApi) .build() // Create a new client and connect to the server val mongoClient = MongoClient.create(settings) val database = mongoClient.getDatabase("admin") try { // Send a ping to confirm a successful connection val command = Document("ping", BsonInt64(1)) val commandResult = database.runCommand(command) println("Pinged your deployment. You successfully connected to MongoDB!") } catch (me: MongoException) { System.err.println(me) }
로컬 배포
로컬 MongoDB deployment에 연결하려면 localhost 을 호스트 이름으로 사용합니다. 기본적으로 mongod 프로세스는 포트 27017 에서 실행되지만, 배포서버에 맞게 사용자 지정할 수 있습니다.
다음 코드는 Kotlin 드라이버를 사용하여 로컬 MongoDB 배포서버에 연결하는 방법을 보여줍니다.
import com.mongodb.kotlin.client.coroutine.MongoClient val uri = "mongodb://localhost:27017/" val client = MongoClient.create(uri)
복제본 세트
MongoDB 복제본 세트 배포는 동일한 데이터 세트를 저장하는 연결된 인스턴스 그룹입니다. 이러한 인스턴스 구성은 데이터 중복성과 높은 데이터 가용성을 제공합니다.
복제본 세트 세트 멤버의 호스트 이름(또는 IP 주소)과 포트 번호를 지정합니다.
복제본 세트 에 있는 호스트의 전체 목록을 제공할 수 없는 경우, 복제본 세트 에 있는 호스트 중 하나 이상을 지정하고 다른 호스트를 찾기 위해 자동 검색을 수행하도록 코틀린 (Kotlin) 드라이버 에 지시할 수 있습니다. 드라이버 자동 검색을 수행하도록 지시하려면 다음 조치 중 하나를 수행합니다.
복제본 세트의 이름을
replicaSet매개변수의 값으로 지정합니다.directConnection매개 변수의 값으로false를 지정합니다.복제본 세트에 둘 이상의 호스트를 지정합니다.
참고
MongoClient 생성자는 비블로킹 입니다. 복제본 세트에 연결하면 클라이언트가 백그라운드 스레드를 사용하여 복제본 세트에 연결하는 동안 생성자가 즉시 반환됩니다.
MongoClient 를 구성하고 해당 nodes 속성의 string 표현을 즉시 출력하는 경우, 클라이언트가 복제본 세트 멤버에 연결하는 동안 목록이 비어 있을 수 있습니다.
다음 예제에서는 ConnectionString 또는 MongoClientSettings 클래스를 사용하여 세 개의 서로 다른 호스트의 27017 포트 실행 MongoDB 복제본 세트 에 연결하는 방법을 보여줍니다. 원하는 수업에 해당하는 탭 을 선택합니다.
val connectionString = ConnectionString("mongodb://host1:27017,host2:27017,host3:27017/") val mongoClient = MongoClient.create(connectionString)
val seed1 = ServerAddress("host1", 27017) val seed2 = ServerAddress("host2", 27017) val seed3 = ServerAddress("host3", 27017) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder -> builder.hosts( listOf(seed1, seed2, seed3) ) } .build() val mongoClient = MongoClient.create(settings)
참고
Docker에서의 복제본 세트
복제본 세트 Docker 에서 실행되면 MongoDB 엔드포인트를 하나만 노출할 수 있습니다. 이 경우 복제본 세트 검색할 수 없습니다. 연결 URI에 directConnection=false 을(를) 지정하거나 이 옵션을 설정하지 않은 상태로 두면 애플리케이션 연결 URI에 연결되지 않을 수 있습니다.
테스트 또는 개발 환경에서 directConnection=true를 지정하여 복제본 세트에 연결할 수 있습니다. 프로덕션 환경에서는 Docker 가상 네트워크 외부에서 각 MongoDB 인스턴스에 액세스할 수 있도록 클러스터를 구성하는 것이 좋습니다.
DNS 서비스 검색
DNS 서비스 검색을 사용하여 연결하려는 서비스의 DNS SRV 기록 조회하려면 연결 문자열 에 SRV 연결 형식을 지정합니다. 또한 SRV 연결 형식을 활성화 하면 Kotlin 드라이버 클라이언트 구성을 변경하지 않고도 새 호스트를 자동으로 다시 스캔합니다.
다음 코드는 SRV 연결 형식을 사용하는 연결 문자열 보여줍니다.
val uri = "mongodb+srv://<hostname>/"
SRV 연결 형식에 대해 자세히 학습하려면 MongoDB 서버 매뉴얼의 SRV 연결 형식 항목을 참조하세요.
API 문서
Kotlin 드라이버에서 MongoClient 객체 만드는 방법에 대해 자세히 학습 다음 API 문서를 참조하세요.