[typescript] MongoDB의 _id 필드를 타입스크립트에서 다루는 방법

MongoDB는 각 문서(document)에 대한 고유 식별자로 _id 필드를 사용합니다. 이 _id 필드는 자동으로 생성되며 일반적으로 ObjectID로 표현됩니다. 이 로그를 통해 유형 안전성을 가진 타입스크립트(TypeScript) 프로젝트에서 MongoDB _id 필드를 어떻게 다루는지 살펴보겠습니다.

ObjectID를 사용하여 타입 정의하기

첫 번째 단계는 MongoDB의 ObjectID 형식을 TypeScript에 정의하는 것입니다. 아래와 같이 mongodb 라이브러리에서 ObjectID를 가져와 타입으로 정의할 수 있습니다.

import { ObjectID } from 'mongodb';

type ID = ObjectID | string;

위의 코드에서 ID는 MongoDB의 ObjectID 타입이거나 문자열(string)일 수 있습니다.

_id 필드 사용하기

이제 MongoDB의 _id 필드를 타입스크립트에서 사용할 수 있습니다. 예를 들어, 다음과 같이 MongoDB 문서 모델을 정의할 수 있습니다.

interface User {
  _id: ID;
  name: string;
  email: string;
  // ... other fields
}

위의 예제에서 _id 필드의 유형으로 정의된 ID 타입을 사용하여 MongoDB의 _id 필드를 사용하고 있습니다.

_id 문자열로 변환하기

일부 경우에는 _id를 문자열로 변환해야 하는 상황이 발생할 수 있습니다. 이를 위해 다음과 같이 유틸리티 함수를 만들어 사용할 수 있습니다.

function stringifyID(id: ID): string {
  if (typeof id === 'string') {
    return id;
  } else {
    return id.toHexString();
  }
}

위의 stringifyID 함수는 ID를 문자열로 변환하는데 사용할 수 있으며, MongoDB의 ObjectID를 문자열로 변환하기 위해 toHexString 메서드를 사용합니다.

결론

이제 MongoDB의 _id 필드를 타입스크립트에서 유형 안전하게 다루는 방법을 살펴보았습니다. ObjectID를 타입으로 정의하고, 해당 타입을 이용하여 MongoDB 문서 모델을 정의하고 사용하는 방법 등을 알아보았습니다. 이를 통해 타입스크립트 프로젝트에서 MongoDB를 사용할 때 보다 안전하고 안정적인 코드를 작성할 수 있습니다.

참고 자료: