인덱스를 만들 때 인덱스에 사용자 정의 이름을 지정할 수 있습니다. 인덱스에 이름을 지정하면 컬렉션의 여러 인덱스를 구별하는 데 도움이 됩니다. 예를 들어 인덱스에 고유한 이름이 지정되어 있으면 쿼리 계획의 Explain 결과 에서 쿼리에 사용되는 인덱스를 보다 쉽게 식별할 수 있습니다.
인덱스 이름을 지정하려면 인덱스를 생성할 때 name 옵션을 포함하세요.
db.<collection>.createIndex( { <field>: <value> }, { name: "<indexName>" } )
이 작업에 대하여
인덱스 이름을 지정하기 전에 다음 사항을 고려하십시오.
인덱스 이름은 고유해야 합니다. 기존 인덱스의 이름으로 인덱스를 만들면 오류가 반환됩니다.
기존 인덱스의 이름은 변경할 수 없습니다. 대신 인덱스를 제거하고 새 이름으로 다시 만들어야 합니다.
기본 인덱스 이름
인덱스 생성 중에 이름을 지정하지 않으면 시스템에서 각 인덱스 키 필드와 값을 밑줄로 연결하여 이름을 생성합니다. 예시:
Index | 기본 이름 |
|---|---|
|
|
|
|
|
|
|
|
절차
이 페이지의 예제에서는 sample_mflix 데이터 세트의 데이터를 사용합니다. 이 데이터 세트를 자체 관리형 MongoDB deployment 에 로드하는 방법에 대한 자세한 내용은 샘플 데이터 세트 로드를 참조하세요. 샘플 데이터베이스를 수정한 경우 이 페이지의 예제를 실행 하려면 데이터베이스를 삭제하고 다시 만들어야 할 수 있습니다.
name 및 text 필드에 텍스트 인덱스 생성합니다. 인덱스 name를 CommentsTextIndex로 설정합니다:
db.comments.createIndex( { name: "text", text: "text" }, { name: "CommentsTextIndex" } )
CommentsTextIndex
결과
인덱스를 생성한 후 db.collection.getIndexes() 메서드를 사용하여 인덱스 이름을 가져올 수 있습니다:
db.comments.getIndexes()
[ { v: 2, key: { _id: 1 }, name: '_id_' }, { v: 2, key: { _fts: 'text', _ftsx: 1 }, name: 'CommentsTextIndex', weights: { name: 1, text: 1 }, default_language: 'english', language_override: 'language', textIndexVersion: 3 } ]