더북(TheBook)

관계형 데이터베이스에서 인덱스는 특정 조건의 필드 값을 가진 레코드를 매우 빠르게 찾아 주는 역할을 한다고 앞서 알아보았습니다. MongoDB에도 마찬가지로 인덱스가 있습니다. 인덱스가 없으면 특정 조건으로 검색할 때 컬렉션의 모든 도큐먼트를 탐색하느라 엄청난 시간이 걸릴 것입니다.

관계형 데이터베이스에서는 테이블의 필드에 인덱스를 추가했습니다. MongoDB에서는 도큐먼트 안에 있는 ‘이름:값’에서 ‘이름’에 인덱스를 추가합니다. 인덱스를 추가할 때는 ensureIndex() 함수를 사용합니다. 그림 8-34는 a에 인덱스를 추가한 결과를 보여 줍니다.

p357

▲ 그림 8-34 MongoDB에서는 도큐먼트 안에 있는 ‘이름:값’에서 ‘이름’에 인덱스 추가

 

이외에도 MongoDB에는 다양한 명령어가 있습니다. 모든 인덱스를 보고 싶을 때는 GetIndexes() 함수를 사용하고, 인덱스를 제거할 때는 DropIndex() 함수를 사용합니다.

group(), aggregate() 함수를 사용하여 원하는 조건의 도큐먼트 개수를 구한다든지, 특정 쌍(pair)의 총합, 평균, 최댓값, 최솟값 등을 계산할 수 있습니다. 자세한 것은 인터넷에서 MongoDB aggregate로 검색해 보세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.