Docs Menu
Docs Home
/ / /
Kotlin Sync 드라이버

인덱스를 사용하여 쿼리 최적화

이 페이지의 내용

  • 개요
  • 샘플 애플리케이션
  • 단일 필드 인덱스
  • 복합 인덱스
  • Multikey Index
  • 지리 공간적 인덱스
  • 고유 인덱스
  • 와일드카드 인덱스
  • 클러스터된 인덱스
  • Atlas 검색 인덱스 관리
  • Atlas Search 인덱스 만들기
  • 검색 인덱스 나열
  • 검색 인덱스 업데이트
  • Atlas Search 인덱스 삭제
  • Text Index
  • 인덱스 삭제

이 페이지에서는 코틀린 동기 (Kotlin Sync) 운전자 를 사용하여 다양한 유형의 인덱스를 관리 하는 방법을 보여주는 복사 가능한 코드 예제를 볼 수 있습니다.

인덱스 작업에 학습 보려면 인덱스 작업 가이드 를 참조하세요. 이 페이지에 표시된 인덱스에 학습 보려면 각 섹션에 제공된 링크를 참조하세요.

이 페이지의 예제를 사용하려면 코드 예제를 샘플 애플리케이션 또는 자체 애플리케이션에 복사합니다. 코드 예제의 모든 자리 표시자(예: <connection string URI>)를 MongoDB 배포에 필요한 관련 값으로 바꿔야 합니다.

다음 샘플 애플리케이션을 사용하여 이 페이지의 코드 예제를 테스트할 수 있습니다. 샘플 애플리케이션을 사용하려면 다음 단계를 수행하세요.

  1. Maven 또는 Gradle 프로젝트 에 코틀린 동기 (Kotlin Sync) 운전자 가 설치되어 있는지 확인합니다.

  2. 다음 코드를 복사하여 새 .kt 파일에 붙여넣습니다.

  3. 이 페이지에서 코드 예제를 복사하여 파일의 지정된 줄에 붙여넣습니다.

1import com.mongodb.ConnectionString
2import com.mongodb.MongoClientSettings
3import com.mongodb.client.model.*
4import com.mongodb.kotlin.client.*
5import org.bson.Document
6
7fun main() {
8 val uri = "<connection string URI>"
9
10 val settings = MongoClientSettings.builder()
11 .applyConnectionString(ConnectionString(uri))
12 .retryWrites(true)
13 .build()
14
15 // Create a new client and connect to the server
16 val mongoClient = MongoClient.create(settings)
17 val database = mongoClient.getDatabase("<database name>")
18 val collection = database.getCollection<Document>("<collection name>")
19
20 // Start example code here
21
22 // End example code here
23}

다음 예시 에서는 지정된 필드 에 오름차순 인덱스 를 생성합니다.

collection.createIndex(Indexes.ascending("<field name>"))

단일 필드 인덱스에 대해 자세히 알아보려면 단일 필드 인덱스 가이드를 참조하세요.

다음 예시 에서는 지정된 필드에 복합 인덱스 를 생성합니다.

collection.createIndex(Indexes.ascending("<field name 1>", "<field name 2>"))

복합 인덱스에 대해 자세히 알아보려면 복합 인덱스 가이드를 참조하세요.

다음 예시 에서는 지정된 배열 값 필드 에 멀티키 인덱스 를 생성합니다.

collection.createIndex(Indexes.ascending("<array field name>"))

다음 예시 에서는 GeoJSON 객체를 포함하는 지정된 필드 에 2dsphere 인덱스 를 생성합니다.

collection.createIndex(Indexes.geo2dsphere("<GeoJSON object field>"))

다음 예시 에서는 지정된 필드 에 고유 인덱스 를 생성합니다.

val indexOptions = IndexOptions().unique(true)
collection.createIndex(Indexes.ascending("<field name>"), indexOptions)

다음 예시 에서는 지정된 컬렉션 에 와일드카드 인덱스 를 생성합니다.

collection.createIndex(Indexes.ascending("$**"))

다음 예시 에서는 _id 필드 에 클러스터형 인덱스 를 사용하여 새 컬렉션 을 만듭니다.

val clusteredIndexOptions = ClusteredIndexOptions(
Indexes.ascending("_id"),
true
)
val collection = database.createCollection("<collection name>", clusteredIndexOptions)

다음 섹션에는 Atlas Search 인덱스를 관리 하는 방법을 설명하는 코드 예제가 포함되어 있습니다.

Atlas Search 인덱스에 학습 보려면 Atlas Search 및 Vector Search 인덱스 가이드 를 참조하세요.

다음 예시 에서는 지정된 필드 에 Atlas Search 인덱스 를 생성합니다.

val index = Document("mappings", Document("dynamic", true))
collection.createSearchIndex("<index name>", index)

serach 인덱스 생성에 대해 자세히 알아보려면 Atlas Search 인덱스 생성 가이드를 참조하세요.

다음 예시 에서는 지정된 컬렉션 의 Atlas Search 인덱스 목록을 출력합니다.

val results = collection.listSearchIndexes()
results.forEach { result ->
println(result)
}

Atlas Search 인덱스 나열에 대해 자세히 알아보려면 Atlas Search 인덱스 나열 가이드를 참조하세요.

다음 예시 에서는 지정된 새 인덱스 정의로 기존 Atlas Search 인덱스 를 업데이트합니다.

val newIndex = Document("mappings", Document("dynamic", true))
collection.updateSearchIndex("<index name>", newIndex)

Atlas Search 인덱스 업데이트에 대해 자세히 알아보려면 Atlas Search 인덱스 업데이트 가이드를 참조하세요.

다음 예시 에서는 지정된 이름의 Atlas Search 인덱스 를 삭제합니다.

collection.dropIndex("<index name>")

Atlas Search 인덱스 삭제에 대해 자세히 알아보려면 Atlas Search 인덱스 삭제 가이드를 참조하세요.

다음 예시 에서는 지정된 string 필드 에 텍스트 인덱스 를 생성합니다.

collection.createIndex(Indexes.text("<field name>"))

다음 예시 에서는 지정된 이름의 인덱스 를 삭제합니다.

collection.dropIndex("<index name>")

돌아가기

데이터 변경 사항 모니터링