Docs Menu
Docs Home
/ / /
Scala
/

단일 필드 인덱스

이 페이지의 내용

  • 개요
  • 샘플 데이터
  • 단일 필드 인덱스 만들기
  • 추가 정보
  • API 문서

단일 필드 인덱스는 컬렉션 에 있는 문서 의 단일 필드 에 대한 참조가 있는 인덱스입니다. 이러한 인덱스는 단일 필드 쿼리 및 정렬 성능을 향상시킵니다. 또한 특정 시간 후 또는 지정된 시계 시간에 컬렉션 에서 문서를 자동으로 제거 하는 TTL 인덱스 를 지원 합니다.

단일 필드 인덱스 생성할 때는 다음 세부 정보를 지정해야 합니다.

  • 인덱스 를 생성할 필드

  • 인덱싱된 값의 오름차순 또는 내림차순 정렬 순서

참고

기본값 _id_ 인덱스 단일 필드 인덱스 의 예시 입니다. 이 인덱스 새 컬렉션 생성될 때 _id 필드 에 자동으로 생성됩니다.

이 가이드 의 예제에서는 Atlas 샘플 데이터 세트sample_mflix 데이터베이스 에 있는 movies 컬렉션 을 사용합니다. 무료 MongoDB Atlas cluster 를 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 보려면 Atlas 시작하기 가이드 를 참조하세요.

이 가이드 의 예제를 실행 하려면 파일 에 다음 가져오기 문을 포함해야 합니다.

import org.mongodb.scala._
import org.mongodb.scala.model.Indexes
import org.mongodb.scala.model.IndexOptions._
import org.mongodb.scala.model.Filters._
import scala.concurrent.Await
import scala.concurrent.duration._
import scala.util.{Failure, Success}
import java.util.concurrent.TimeUnit

createIndex() 메서드를 사용하여 단일 필드 인덱스 를 만듭니다. 다음 예시 에서는 title 필드 에 오름차순으로 인덱스 를 생성합니다.

val index = Indexes.ascending("title")
val observable = collection.createIndex(index)
Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))

listIndexes() 메서드를 사용하여 인덱스 생성되었는지 확인할 수 있습니다. 다음 출력과 같이 목록에 title 에 대한 인덱스 표시되어야 합니다.

collection.listIndexes().subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))
{"v": 2, "key": {"title": 1}, "name": "title_1"}

다음은 title 필드 에 생성된 인덱스 에 포함되는 쿼리 의 예시 입니다.

val filter = equal("title", "Sweethearts")
collection.find(filter).first().subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))
{"_id":...,"plot":"A musical comedy duo...",
"genres":["Musical"],...,"title":"Sweethearts",...}

인덱스를 관리하는 방법을 보여주는 실행 가능한 예제를 보려면 인덱스를 사용하여 쿼리 최적화를 참조하세요.

단일 필드 인덱스에 학습 보려면 MongoDB Server 매뉴얼의 단일 필드 인덱스 필드 참조하세요.

이 가이드에서 설명하는 메서드에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.

돌아가기

Indexes