인덱싱은 질의의 효율적인 해결을 지원한다. MongoDB는 질의문에 맞는 document를 선택하기 위해 collection의 모든 document를 다 스캔해야만 한다. 이러한 스캔은 매우 비효율적이고 MongoDB의 대량 데이터를 처리를 요구한다.
인덱스는 특별한 데이터 구조다. 탐색하기 좋은 방식으로 데이터 집합의 작은 부분을 저장한다.
인덱스를 생성하기 위해 ensureIndex() 메서드를 사용한다.
db.collection_name.ensureIndex({KEY : 1})
여기서 KEY는 인덱스를 생성하고 싶은 field의 이름이다. 1은 오름차순 -1은 내림차순이다.
예
db.mycol.ensureIndex({"title" : 1})
ensureIndex()에서 여러 field를 전달할 수 있고, 여러 field에 인덱스를 생성할 수 있다.
db.mycol.ensureIndex({"title : 1", "description" : -1})
ensureIndex() 메서드는 선택 사항인 다음과 같은 옵션 목록을 허용한다.
Parameter | Type | Description |
---|---|---|
background | Boolean | Builds the index in the background so that building an index does not block other database activities. Specify true to build in the background. The default value is false. |
unique | Boolean | Creates a unique index so that the collection will not accept insertion of documents where the index key or keys match an existing value in the index. Specify true to create a unique index. The default value is false. |
name | string | The name of the index. If unspecified, MongoDB generates an index name by concatenating the names of the indexed fields and the sort order. |
dropDups | Boolean | Creates a unique index on a field that may have duplicates. MongoDB indexes only the first occurrence of a key and removes all documents from the collection that contain subsequent occurrences of that key. Specify true to create unique index. The default value is false. |
sparse | Boolean | If true, the index only references documents with the specified field. These indexes use less space but behave differently in some situations (particularly sorts). The default value is false. |
expireAfterSeconds | integer | Specifies a value, in seconds, as a TTL to control how long MongoDB retains documents in this collection. |
v | index version | The index version number. The default index version depends on the version of MongoDB running when creating the index. |
weights | document | The weight is a number ranging from 1 to 99,999 and denotes the significance of the field relative to the other indexed fields in terms of the score. |
default_language | string | For a text index, the language that determines the list of stop words and the rules for the stemmer and tokenizer. The default value is english. |
language_override | string | For a text index, specify the name of the field in the document that contains, the language to override the default language. The default value is language. |
'과목 > 빅데이터' 카테고리의 다른 글
빅 데이터 강의 (0) | 2018.05.01 |
---|---|
MongoDB Aggregation (0) | 2018.04.28 |
MongoDB sort (0) | 2018.04.28 |
MongoDB Limit (0) | 2018.04.28 |
MongoDB Projection (0) | 2018.04.28 |