관계형 데이터베이스에서 인덱스는 특정 조건의 필드 값을 가진 레코드를 매우 빠르게 찾아 주는 역할을 한다고 앞서 알아보았습니다. MongoDB에도 마찬가지로 인덱스가 있습니다. 인덱스가 없으면 특정 조건으로 검색할 때 컬렉션의 모든 도큐먼트를 탐색하느라 엄청난 시간이 걸릴 것입니다.
관계형 데이터베이스에서는 테이블의 필드에 인덱스를 추가했습니다. MongoDB에서는 도큐먼트 안에 있는 ‘이름:값’에서 ‘이름’에 인덱스를 추가합니다. 인덱스를 추가할 때는 ensureIndex() 함수를 사용합니다. 그림 8-34는 a에 인덱스를 추가한 결과를 보여 줍니다.
▲ 그림 8-34 MongoDB에서는 도큐먼트 안에 있는 ‘이름:값’에서 ‘이름’에 인덱스 추가
이외에도 MongoDB에는 다양한 명령어가 있습니다. 모든 인덱스를 보고 싶을 때는 GetIndexes() 함수를 사용하고, 인덱스를 제거할 때는 DropIndex() 함수를 사용합니다.
또 group(), aggregate() 함수를 사용하여 원하는 조건의 도큐먼트 개수를 구한다든지, 특정 쌍(pair)의 총합, 평균, 최댓값, 최솟값 등을 계산할 수 있습니다. 자세한 것은 인터넷에서 MongoDB aggregate로 검색해 보세요.