

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 다중 키 인덱스
<a name="indexes-multikey"></a>

배열 값이 있는 필드의 경우 다중 키 인덱스를 사용하면 배열의 각 요소에 대한 인덱스 키를 생성할 수 있습니다. 배열을 인덱싱하면 배열의 각 요소에 대한 인덱스 항목이 생성됩니다.

다중 키 인덱스는 애플리케이션이 배열의 값을 기반으로 문서를 자주 쿼리하거나 필터링할 때 유용합니다.

## 지원되는 인덱스 속성
<a name="indexes-multikey-properties"></a>


| 옵션 | 3.6 | 4.0 | 5.0 | 8.0 | 탄력적 클러스터 | 
| --- | --- | --- | --- | --- | --- | 
| [이름](index-property-name.md) | 예 | 예 | 예 | 예 | 예 | 
| [고유](index-property-unique.md) | 예 | 예 | 예 | 예 | 예 | 
| [스파스](index-property-sparse.md) \* | 예 | 예 | 예 | 예 | 예 | 
| [partialFilterExpression](index-property-partialfilterexpression.md)\* | 아니요 | 아니요 | 예 | 예 | 아니요 | 
| [expireAfterSeconds](index-property-expireafterseconds.md) | 예 | 예 | 예 | 예 | 예 | 

\* `sparse` 및 `partialFilterExpression` 옵션은 동일한 인덱스 정의에서 함께 사용할 수 없습니다. 이러한 옵션으로 인덱스를 생성하려고 하면 다음 오류와 함께 인덱스가 실패합니다.

```
Error in specification: cannot mix partialFilterExpression and sparse options
```

## 다중 키 인덱스 생성
<a name="indexes-multikey-creating"></a>

`createIndex()` 메서드를 사용하여 다중 키 인덱스를 생성합니다. 메서드 구문은 다음과 같습니다. `db.collection.createIndex(<key>, <options>)` 

`key` 파라미터는 필드와 인덱스 정렬 순서를 지정하는 JSON 문서입니다.

```
{
  "<field>": <1 (ascending)|-1 (descending)>
}
```

`options` 파라미터는 인덱스에 대한 옵션을 지정하는 JSON 문서입니다.

```
{
  "name": "<name>",
  "unique": <true | false>,
  "sparse": <true | false>,
  "partialFilterExpression": <filter expression>,
  "expireAfterSeconds": <seconds before expiry>
}
```

다음 예제에서는 이름이 인 오름차순으로 정렬된 `categories` 필드에 다중 키 인덱스를 생성합니다. `book_categories` 

```
db.collection.createIndex(
  {
    "categories": 1
  },
  {
    "name": "book_categories"
  }
)
```

다중 키 인덱스 생성 예제는 인덱스 [속성을](index-properties.md) 참조하세요.