[typescript] MongoDB의 특정 필드가 존재하는지 확인하는 방법 (타입스크립트에서)

MongoDB에서 특정 필드의 존재 여부를 확인하기 위해서는 TypeScript에서 약간의 작업을 해야 합니다. 이를 위해 Partial 타입을 사용하여 MongoDB의 스키마에 정의된 필드를 표현할 수 있습니다.

MongoDB 스키마 작성

먼저, MongoDB의 스키마를 TypeScript에서 표현하는 방법에 대해 알아보겠습니다.

interface User {
  _id: string;
  name: string;
  email: string;
  age?: number; // Optional 필드
}

위의 코드에서 ?를 사용하여 age 필드가 선택적(optional)임을 나타냈습니다.

필드의 존재 여부 확인

이제 특정 사용자의 필드가 존재하는지 확인하기 위한 함수를 작성해보겠습니다.

function isFieldExist(user: Partial<User>, field: keyof User): boolean {
  return field in user;
}

위의 코드에서 Partial을 사용하여 User 스키마의 일부 필드만 가지는 객체를 나타내고, keyof를 사용하여 User 스키마의 필드 이름을 타입으로 정의하였습니다.

사용 예시

이제 위에서 작성한 isFieldExist 함수를 사용하여 특정 필드의 존재 여부를 확인할 수 있습니다.

const user: Partial<User> = {
  _id: "123",
  name: "John Doe"
};

console.log(isFieldExist(user, "age")); // false
console.log(isFieldExist(user, "name")); // true

위의 예시에서는 user 객체가 age 필드를 가지고 있지 않기 때문에 첫 번째 호출은 false를 반환합니다.

위와 같이 TypeScript를 사용하여 MongoDB 스키마의 특정 필드 존재 여부를 확인할 수 있습니다. 이를 통해 안정적이고 타입 안정성이 보장된 코드를 작성할 수 있습니다.

참고 문헌: