문서 메뉴
문서 홈
/ / /
Kotlin Sync 드라이버

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

이 페이지의 내용

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

이 페이지에서는 Kotlin 동기화 드라이버를 사용하여 다양한 유형의 인덱스를 관리하는 방법을 보여주는 복사 가능한 코드 예제를 볼 수 있습니다.

인덱스 작업에 대해 자세히 알아보려면 인덱스 작업 가이드를 참조하세요. 이 페이지에 표시된 인덱스에 대해 자세히 알아보려면 각 섹션에 제공된 링크를 참조하세요.

이 페이지의 예제를 사용하려면 코드 예제를 샘플 애플리케이션 또는 자체 애플리케이션에 복사합니다. 코드 예제의 모든 자리 표시자(예: <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 인덱스 가이드를 참조하세요.

다음 예에서는 지정된 필드에 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 인덱스 삭제 가이드를 참조하세요.

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

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

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

collection.dropIndex("<index name>")

돌아가기

데이터 변경 사항 모니터링

다음

인덱스 작업