[typescript] 타입스크립트와 MongoDB 연동 시 데이터의 중복 여부 체크하는 방법

타입스크립트로 MongoDB와 연동할 때 데이터의 중복을 방지하고 싶을 때, 중복 여부를 체크하는 방법에 대해 알아보겠습니다. 이를 위해서 ‘mongoose’ 라이브러리를 사용하여 MongoDB와 연동하고 중복 여부를 체크할 수 있습니다.

mongoose-unique-validator 라이브러리 설치

mongoose-unique-validator 라이브러리는 MongoDB에서 중복된 데이터를 방지하기 위해 필드에 대한 유효성을 검사하는 데 사용됩니다. 이 라이브러리를 사용하면 각 필드에 대한 중복 여부를 쉽게 확인할 수 있습니다.

npm install mongoose-unique-validator

모델 스키마 설정

타입스크립트에서 MongoDB 모델 스키마를 설정할 때, 중복 여부를 체크할 필드에 unique 속성을 추가하고, mongoose-unique-validator를 사용하여 유효성을 검사할 수 있습니다.

import * as mongoose from 'mongoose';
import uniqueValidator from 'mongoose-unique-validator';

const userSchema = new mongoose.Schema({
  username: { type: String, unique: true },
  email: { type: String, unique: true }
});

userSchema.plugin(uniqueValidator);

위 예제에서 usernameemail 필드에 unique: true를 추가하여 중복 여부를 체크하도록 설정하였습니다. 또한, userSchema.plugin(uniqueValidator)를 통해 mongoose-unique-validator를 플러그인으로 추가하였습니다.

중복 데이터 체크

데이터를 생성 또는 업데이트할 때 중복 여부를 체크하려면 해당 모델의 메서드를 사용하여 중복을 확인할 수 있습니다.

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

// 중복된 username 체크
User.findOne({ username: 'newusername' }, (err, existingUser) => {
  if (existingUser) {
    // 중복된 데이터가 있을 경우 처리 로직 추가
  } else {
    // 중복된 데이터가 없을 경우 처리 로직 추가
  }
});

위 예제에서 User.findOne을 사용하여 중복된 username을 체크하였습니다.

이제 타입스크립트와 MongoDB를 연동하고 데이터의 중복 여부를 체크하는 방법을 알게 되었습니다. mongoose-unique-validator를 사용하여 모델 스키마에 중복 여부를 체크할 필드를 설정하고, 해당 필드의 중복 여부를 체크하여 데이터의 유효성을 검증할 수 있습니다.

더 자세한 내용은 mongoose-unique-validator 공식 문서를 참고할 수 있습니다.