Docs Menu
Docs Home
/ / /
Kotlin 코루틴
/ /

인덱스 빌더

이 페이지의 내용

  • 개요
  • 오름차순 인덱스
  • 내림차순 인덱스
  • 복합 인덱스
  • Text Indexes
  • 해시 인덱스
  • 지리 공간적 인덱스

이 가이드 에서는 MongoDB 코틀린 (Kotlin) 드라이버 에서 빌더 를 사용하여 인덱스 를 지정하는 방법을 학습 수 있습니다. Indexes 빌더는 다음 유형의 인덱스를 구성하기 위한 헬퍼 메서드를 제공합니다.

  • 오름차순 인덱스

  • 내림차순 인덱스

  • 복합 인덱스

  • Text Indexes

  • 해시 인덱스

  • 지리 공간적 인덱스

인덱스는 컬렉션 데이터 세트의 하위 집합을 저장합니다. 인덱스는 특정 필드 또는 필드 세트의 값을 필드 값에 따라 정렬하여 저장합니다. 인덱스가 적용되는 쿼리의 예는 인덱스 가이드를 참조하세요.

Indexes 클래스는 모든 MongoDB 인덱스 유형에 대한 정적 팩토리 메서드를 제공합니다. 각 메서드는 BSON 다음을 반환합니다 createIndex()에 전달할 수 있는 인스턴스입니다.

간결하게 하기 위해 인덱스 의 모든 메서드를 가져오도록 선택할 수 있습니다. 클래스:

import com.mongodb.client.model.Indexes.*

오름차순 인덱스를 사용하면 인덱싱된 필드의 값을 기준으로 쿼리 결과를 가장 작은 필드부터 가장 큰 필드까지 정렬할 수 있습니다.

오름차순 인덱스를 만들려면 먼저 ascending() 빌더 메서드를 사용하여 인덱스 Bson 문서를 나타내는 인스턴스를 만들고 인덱싱하려는 필드의 이름을 하나 이상 전달합니다. 그런 다음 컬렉션에서 createIndex() 메서드를 호출하여 인덱스 문서가 포함된 Bson 인스턴스를 전달합니다.

참고

단일 필드에 오름차순 또는 내림차순 인덱스가 있는 경우 MongoDB는 어느 방향으로든 인덱스를 사용하여 정렬할 수 있습니다.

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

val ascendingIndex = Indexes.ascending("name")
val indexName = collection.createIndex(ascendingIndex)
println(indexName)
name_1

내림차순 인덱스를 사용하면 인덱싱된 필드의 값을 기준으로 쿼리 결과를 가장 큰 필드부터 가장 작은 필드까지 정렬할 수 있습니다.

내림차순 인덱스를 만들려면 먼저 내림차순() 을 호출합니다. 빌더 메서드를 사용하여 인덱스 문서를 나타내는 인스턴스를 만들고 Bson 인덱싱하려는 필드의 이름을 하나 이상 전달합니다. 그런 다음 컬렉션에서 createIndex() 메서드를 호출하여 인덱스 문서가 포함된 Bson 인스턴스를 전달합니다.

다음 예시에서는 capacity 필드에 내림차순 인덱스를 지정합니다.

val descendingIndex = Indexes.descending("capacity")
val indexName = collection.createIndex(descendingIndex)
println(indexName)
capacity_-1

복합 인덱스를 생성하려면 먼저 복합 인덱스 () 를 호출합니다. 빌더 메서드를 사용하여 Bson 인덱스 문서를 나타내는 인스턴스를 만들고 인덱싱할 필드의 이름을 전달합니다. 그런 다음 컬렉션에서 createIndex() 메서드를 호출하여 인덱스 문서가 포함된 Bson 인스턴스를 전달합니다.

다음 예제에서는 capacity 및 필드의 year 내림차순 인덱스와 필드의 오름차순 인덱스로 구성된 복합 인덱스를 지정합니다.name

val compoundIndexExample = Indexes.compoundIndex(
Indexes.descending("capacity", "year"),
Indexes.ascending("name")
)
val indexName = collection.createIndex(compoundIndexExample)
println(indexName)
capacity_-1_year_-1_name_1

텍스트 인덱스는 인덱스된 필드의 텍스트를 기준으로 문서를 그룹화합니다.

텍스트 인덱스를 만들려면 먼저 text() 빌더 메서드를 사용하여 Bson 인덱스 문서를 나타내는 인스턴스를 만들고 인덱싱할 필드의 이름을 전달합니다. 그런 다음 컬렉션에서 createIndex() 메서드를 호출하여 인덱스 문서가 포함된 Bson 인스턴스를 전달합니다.

다음 예제에서는 theaters 필드에 텍스트 인덱스 키를 지정합니다.

val textIndex = Indexes.text("theaters")
val indexName = collection.createIndex(textIndex)
println(indexName)
theaters_text

해시된 인덱스는 인덱스된 필드의 해시 값을 기준으로 문서를 그룹화합니다.

해시된 인덱스를 생성하려면 먼저 hashed() 빌더 메서드를 사용하여 인덱스 문서를 나타내는 인스턴스를 만들고 인덱싱할 필드의 이름을 전달합니다.Bson 그런 다음 컬렉션에서 createIndex() 메서드를 호출하여 인덱스 문서가 포함된 Bson 인스턴스를 전달합니다.

다음 예제에서는 capacity 필드에 해시된 인덱스를 지정합니다.

val hashedIndex = Indexes.hashed("capacity")
val indexName = collection.createIndex(hashedIndex)
println(indexName)
capacity_hashed

2dsphere 인덱스는 인덱스된 필드의 좌표를 기준으로 문서를 그룹화합니다.

인덱스를 생성하려면 먼저 2dsphere geo2dsphere() 빌더 메서드를 사용하여 Bson 인덱스 문서를 나타내는 인스턴스를 만들고 인덱싱할 필드의 이름을 하나 이상 전달합니다. 그런 다음 컬렉션에서 createIndex() 메서드를 호출하여 인덱스 문서가 포함된 Bson 인스턴스를 전달합니다.

다음 예제에서는 location 필드에 2dsphere 인덱스를 지정합니다.

val geo2dsphereIndex = Indexes.geo2dsphere("location")
val indexName = collection.createIndex(geo2dsphereIndex)
println(indexName)
location_2dsphere

돌아가기

필터 빌더