[typescript] 타입스크립트와 MongoDB 연동 시 인덱스 설정하는 방법

MongoDB는 데이터를 효율적으로 저장하고 검색하기 위해 인덱스를 활용합니다. 특히 타입스크립트와 함께 MongoDB를 사용할 때, 데이터 모델을 정의하고 그에 맞게 인덱스를 설정하는 방법을 알아보겠습니다.

1. Mongoose 모듈 설치

먼저, MongoDB와 타입스크립트를 연동하기 위해 Mongoose 모듈을 설치합니다.

npm install mongoose

2. 데이터 모델 정의

다음으로, 타입스크립트에서 Mongoose를 사용하여 데이터 모델을 정의합니다. 예를 들어, 사용자 모델을 정의하는 코드는 다음과 같을 수 있습니다.

import mongoose, { Schema, Document } from 'mongoose';

export interface User extends Document {
  name: string;
  email: string;
}

const userSchema: Schema = new Schema({
  name: { type: String, required: true },
  email: { type: String, required: true, unique: true },
});

const UserModel = mongoose.model<User>('User', userSchema);

export default UserModel;

위 코드에서 userSchemaemail 필드에 unique: true 옵션을 설정하여 해당 필드에 인덱스를 추가할 수 있습니다.

3. 인덱스 설정

이제, 데이터 모델을 정의한 후 해당 모델에 대한 인덱스를 설정할 수 있습니다. 다음은 email 필드에 대한 유니크한 인덱스를 설정하는 예제입니다.

userSchema.index({ email: 1 }, { unique: true });

위 코드는 userSchema에서 email 필드에 대한 유니크한 인덱스를 설정합니다.

4. 연결 설정

마지막으로, MongoDB와의 연결 설정을 마무리합니다.

mongoose.connect('mongodb://localhost:27017/myapp', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
})
  .then(() => console.log('MongoDB Connected'))
  .catch(err => console.log(err));

위 코드는 mongoose.connect를 통해 MongoDB에 연결하고 있습니다.

위와 같이 타입스크립트와 MongoDB를 연동하면서 데이터 모델을 정의하고 해당 모델에 대한 인덱스를 설정할 수 있습니다. 이를 통해 데이터의 검색 속도를 향상시킬 수 있습니다.

참고 자료