단일 필드 인덱스 생성
첫 번째 단계에서는 MongoDB 에 연결하고, 샘플 컬렉션이 있는 데이터베이스를 생성한 다음, 단일 필드에 첫 번째 인덱스를 생성합니다. 단일 필드 인덱스는 특정 필드를 기준으로 필터링하거나 정렬하는 쿼리의 성능을 향상시킵니다.
먼저 터미널에 mongosh를 입력하여 MongoDB Shell 을 엽니다. 그러면 현재 환경에서 실행 중인 MongoDB 서버에 연결됩니다.
mongosh
MongoDB Shell 에 접속하면 > 프롬프트가 표시됩니다. 이제 indexlab이라는 새 데이터베이스를 생성하고 해당 데이터베이스로 전환합니다. 이 랩의 후속 명령은 별도로 명시되지 않는 한 이 셸 내에서 실행됩니다.
use indexlab
이제 users라는 새 컬렉션에 샘플 문서를 삽입해 보겠습니다. 이 데이터는 랩 전체에서 사용됩니다.
db.users.insertMany([
{ name: "Alice", age: 28, email: "alice@example.com" },
{ name: "Bob", age: 35, email: "bob@example.com" },
{ name: "Charlie", age: 42, email: "charlie@example.com" }
]);
데이터가 준비되었으므로 name 필드에 인덱스를 생성해 보겠습니다. 단일 필드에 대한 인덱스는 해당 필드로 문서를 검색하는 쿼리의 속도를 높이는 데 도움이 됩니다.
db.users.createIndex({ name: 1 });
위 명령에서 { name: 1 }은 name 필드에 오름차순으로 인덱스를 생성하도록 지정합니다. -1을 사용하면 내림차순 인덱스가 생성됩니다.
인덱스가 생성되었는지 확인하려면 users 컬렉션의 모든 인덱스를 나열할 수 있습니다.
db.users.getIndexes();
출력에서 두 개의 인덱스를 볼 수 있습니다. 하나는 MongoDB 가 모든 컬렉션에 생성하는 기본 _id 인덱스이고, 다른 하나는 방금 생성한 name_1 인덱스입니다.
[
{ "v": 2, "key": { "_id": 1 }, "name": "_id_" },
{ "v": 2, "key": { "name": 1 }, "name": "name_1" }
]