단일 필드에 인덱스를 생성하여 해당 필드에 대한 쿼리 성능을 개선할 수 있습니다.
단일 필드 인덱스 만들려면 db.collection.createIndex() 메서드를 사용합니다.
db.<collection>.createIndex( { <field>: <sort-order> } )
시작하기 전에
students 컬렉션을 만들고 다음 문서를 포함합니다.
db.students.insertMany( [ { "name": "Alice", "gpa": 3.6, "location": { city: "Sacramento", state: "California" } }, { "name": "Bob", "gpa": 3.2, "location": { city: "Albany", state: "New York" } } ] )
절차
다음 예시는 그 방법을 보여줍니다.
단일 필드에 인덱스 만들기
GPA 로 학생을 자주 조회하는 학교 관리자를 생각해 보세요. 이러한 쿼리의 성능을 개선하기 위해 gpa 필드에 인덱스를 만들 수 있습니다.
db.students.createIndex( { gpa: 1 } )
결과
인덱스 는 다음과 같이 gpa 필드 에서 선택하는 쿼리를 지원합니다.
db.students.find( { gpa: 3.6 } ) db.students.find( { gpa: { $lt: 3.4 } } )
포함된 필드에 인덱스 만들기
내장된 문서 내의 필드에 인덱스를 만들 수 있습니다. 포함된 필드의 인덱스는 점 표기법 을 사용하는 쿼리를 수행할 수 있습니다.
location 필드는 내장된 필드 city 및 state를 포함하는 내장된 문서입니다. location.state 필드에 인덱스를 만듭니다.
db.students.createIndex( { "location.state": 1 } )
결과
인덱스 는 다음과 같이 location.state 필드 에 대한 쿼리를 지원합니다.
db.students.find( { "location.state": "California" } ) db.students.find( { "location.city": "Albany", "location.state": "New York" } )