MongoDB에 연결
이 페이지의 내용
개요
이 페이지에는 코틀린 동기 (Kotlin Sync) 운전자 를 사용하여 다양한 설정을 지정하여 애플리케이션 을 MongoDB 에 연결하는 방법을 보여주는 코드 예제가 포함되어 있습니다.
이 페이지의 연결 예제를 사용하려면 코드 예제를 샘플 애플리케이션 또는 자체 애플리케이션에 복사합니다. 코드 예제의 모든 자리 표시자(예: <hostname>
)를 MongoDB 배포에 필요한 관련 값으로 바꿔야 합니다.
샘플 애플리케이션
다음 샘플 애플리케이션을 사용하여 이 페이지의 코드 예제를 테스트할 수 있습니다. 샘플 애플리케이션을 사용하려면 다음 단계를 수행하세요.
Maven 또는 Gradle 프로젝트 에 코틀린 동기 (Kotlin Sync) 운전자 가 설치되어 있는지 확인합니다.
다음 코드를 복사하여 새
.kt
파일에 붙여넣습니다.이 페이지에서 코드 예제를 복사하여 파일의 지정된 줄에 붙여넣습니다.
1 import com.mongodb.kotlin.client.MongoClient 2 import org.bson.Document 3 4 fun main() { 5 6 // Start example code here 7 8 // End example code here 9 10 val database = mongoClient.getDatabase("admin") 11 12 val command = Document("ping", 1) 13 val commandResult = database.runCommand(command) 14 println("Pinged your deployment. You successfully connected to MongoDB!") 15 }
연결
다음 섹션에서는 MongoDB 의 로컬 인스턴스 또는 Atlas 의 클라우드 호스팅 인스턴스 와 같은 다양한 대상에 연결하는 방법을 설명합니다.
로컬 배포
다음 코드는 string MongoDB의 로컬 인스턴스 에 연결하기 위한 연결 을 보여줍니다.
val uri = "mongodb://localhost:27017/" val mongoClient = MongoClient.create(uri)
Atlas
다음 코드는 에서 호스팅되는 string 배포서버 에 연결하기 위한 연결 을 Atlas 보여줍니다.
val uri = "mongodb+srv://<db_username>:<db_password>@<hostname/port>/?<options>" val mongoClient = MongoClient.create(uri)
복제본 세트
다음 코드는 복제본 세트 에 연결하기 위한 연결 string 을 보여줍니다.
val uri = "mongodb://<replica set member>:<port>/?replicaSet=<replica set name>" val mongoClient = MongoClient.create(uri)
TLS(전송 계층 보안)
다음 섹션에서는 TLS 프로토콜 을 활성화하면서 MongoDB 에 연결하는 방법을 설명합니다. 코틀린 동기 (Kotlin Sync) 운전자 에서 TLS를 사용하는 방법에 학습 보려면 연결에서 TLS 활성화를 참조하세요.
TLS 활성화
다음 탭은 연결에서 TLS를 활성화 하는 방법을 보여줍니다.
val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString("<connection string>")) .applyToSslSettings { builder -> builder.enabled(true) } .build() val mongoClient = MongoClient.create(settings)
val uri = "mongodb+srv://<db_username>:<db_password>@<cluster-url>?tls=true" val mongoClient = MongoClient.create(uri)
TLS 활성화에 대해 자세히 알아보려면 TLS 구성 가이드에서 TLS 활성화 를 참조하세요.
호스트 이름 확인 사용 안 함
다음 탭은 TLS를 사용하여 연결할 때 호스트 이름 확인을 비활성화하는 방법을 보여줍니다.
val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString("<connection string>")) .applyToSslSettings { builder -> builder.enabled(true) builder.invalidHostNameAllowed(true) } .build() val mongoClient = MongoClient.create(settings);
val uri = "mongodb://<db_username>:<db_password>@<hostname>:<port>/?"tls=true&tlsAllowInvalidHostnames=true" val mongoClient = MongoClient.create(uri)
네트워크 압축
다음 섹션에서는 네트워크 압축 알고리즘을 지정하면서 MongoDB 에 연결하는 방법을 설명합니다.
압축 알고리즘
다음 탭은 MongoDB 에 연결하는 동안 사용 가능한 모든 압축기를 지정하는 방법을 보여줍니다.
val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString("<connection string>")) .compressorList( listOf( MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor()) ) .build() val mongoClient = MongoClient.create(settings)
val uri = ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd") val mongoClient = MongoClient.create(uri)
zlibCompressionLevel
다음 탭은 zlib
압축기의 압축 수준을 지정하는 방법을 보여줍니다.
val zlib = MongoCompressor.createZlibCompressor() val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .compressorList(listOf(zlib.withProperty(MongoCompressor.LEVEL, <level>))) .build() val mongoClient = MongoClient.create(settings)
val uri = "mongodb://<db_username>:<db_password>@<hostname>:<port>/?" + "compressors=zlib" + "zlibCompressionLevel=<zlib compression level>" val mongoClient = MongoClient.create(uri)
서버 선택
다음 코드는 서버 선택 함수를 지정하는 연결 string 을 보여줍니다.
val client = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>", server_selector=<selector function>)
Stable API
다음 코드는 MongoClientSettings
인스턴스 내에서 Stable API 설정을 지정하는 방법을 보여줍니다.
val serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .build() val uri = "<connection string>" val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .serverApi(serverApi) .build() val client = MongoClient.create(settings)
안정적인 API에 대해 자세히 알아보려면 stable API 를 참조하세요 stable API