문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

인덱스 이름 지정

이 페이지의 내용

  • 이 작업에 대하여
  • 기본 인덱스 이름
  • 절차
  • 결과
  • 자세히 알아보기

인덱스를 만들 때 인덱스에 사용자 정의 이름을 지정할 수 있습니다. 인덱스에 이름을 지정하면 컬렉션의 여러 인덱스를 구별하는 데 도움이 됩니다. 예를 들어 인덱스에 고유한 이름이 지정되어 있으면 쿼리 계획의 Explain 결과 에서 쿼리에 사용되는 인덱스를 보다 쉽게 식별할 수 있습니다.

인덱스 이름을 지정하려면 인덱스를 만들 때 name 옵션을 포함합니다.

db.<collection>.createIndex(
{ <field>: <value> },
{ name: "<indexName>" }
)

인덱스 이름을 지정하기 전에 다음 사항을 고려하십시오.

  • 인덱스 이름은 고유해야 합니다. 기존 인덱스의 이름으로 인덱스를 만들면 오류가 반환됩니다.

  • 기존 인덱스의 이름은 변경할 수 없습니다. 대신 인덱스를 삭제하고 새 이름으로 다시 만들어야 합니다.

인덱스 생성 중에 이름을 지정하지 않으면 시스템에서 각 인덱스 키 필드와 값을 밑줄로 연결하여 이름을 생성합니다. 예를 들면 다음과 같습니다.

색인
기본 이름
{ score : 1 }
score_1
{ content : "text", "description.tags": "text" }
content_text_description.tags_text
{ category : 1, locale : "2dsphere"}
category_1_locale_2dsphere
{ "fieldA" : 1, "fieldB" : "hashed", "fieldC" : -1 }
fieldA_1_fieldB_hashed_fieldC_-1

blog 컬렉션에는 블로그 게시물 및 사용자 상호 작용에 대한 데이터가 포함되어 있습니다.

content, users.commentsusers.profiles 필드에 텍스트 인덱스를 만듭니다. 인덱스 nameInteractionsTextIndex로 설정합니다:

db.blog.createIndex(
{
content: "text",
"users.comments": "text",
"users.profiles": "text"
},
{
name: "InteractionsTextIndex"
}
)

인덱스를 생성한 후 db.collection.getIndexes() 메서드를 사용하여 인덱스 이름을 가져올 수 있습니다:

db.blog.getIndexes()

출력:

[
{ v: 2, key: { _id: 1 }, name: '_id_' },
{
v: 2,
key: { _fts: 'text', _ftsx: 1 },
name: 'InteractionsTextIndex',
weights: { content: 1, 'users.comments': 1, 'users.profiles': 1 },
default_language: 'english',
language_override: 'language',
textIndexVersion: 3
}
]
  • 인덱스를 생성하는 방법을 알아보려면 인덱스 생성을 참조하세요.

  • 인덱스 속성에 대한 자세한 내용은 인덱스 속성을 참조하세요.

← 인덱스 만들기