기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
복합 인덱스
복합 인덱스는 문서 모음에 있는 두 개 이상의 필드의 정보를 저장하여 첫 번째 필드 또는 접두사 필드에 대한 쿼리를 허용합니다. 이러한 인덱스는 여러 필드를 동시에 필터링하거나 필터링을 정렬 작업과 결합하는 쿼리의 성능을 최적화합니다. 또한 가장 왼쪽에 인덱싱된 필드의 단일 조건 쿼리에도 효과적입니다. 데이터베이스는 이러한 인덱스 항목을 활용하여 전체 컬렉션 스캔을 수행하지 않고도 일치하는 문서를 효율적으로 찾습니다.
복합 필드 인덱스는 다음과 같은 경우에 유용합니다.
-
여러 필드를 동시에 필터링해야 합니다.
-
필터링을 정렬 작업과 결합해야 합니다.
지원되는 인덱스 속성
| 옵션 | 3.6 | 4.0 | 5.0 | 8.0 | 탄력적 클러스터 |
|---|---|---|---|---|---|
| 이름 | 예 | 예 | 예 | 예 | 예 |
| 고유 | 예 | 예 | 예 | 예 | 예 |
| 스파스 * | 예 | 예 | 예 | 예 | 예 |
| partialFilterExpression* | 아니요 | 아니요 | 예 | 예 | 아니요 |
* sparse 및 partialFilterExpression 옵션은 동일한 인덱스 정의에서 함께 사용할 수 없습니다. 이러한 옵션으로 인덱스를 생성하려고 하면 다음 오류와 함께 인덱스가 실패합니다.
Error in specification: cannot mix partialFilterExpression and sparse options
복합 인덱스 생성
createIndex() 메서드를 사용하여 복합 인덱스를 생성합니다. 메서드 구문은 다음과 같습니다. db.collection.createIndex(<keys>, <options>)
keys 파라미터는 필드와 인덱스 정렬 순서를 지정하는 JSON 문서입니다.
{ "<field 1>": <1 (ascending)|-1 (descending)>, "<field 2>": <1 (ascending)|-1 (descending)>, ... }
단 하나의 필드만 복합 인덱스의 배열일 수 있습니다. 둘 이상의 배열 필드에 복합 인덱스를 생성하려고 하면 다음 오류와 함께 실패합니다.
multiple fields of compound index cannot be arrays
options 파라미터는 인덱스에 대한 옵션을 지정하는 JSON 문서입니다.
{ "name": "<name>", "unique": <true | false>, "sparse": <true | false>, "partialFilterExpression": <filter expression> }
복합 인덱스 생성 예제는 인덱스 속성을 참조하세요.