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를 사용할 때 보다 안전하고 안정적인 코드를 작성할 수 있습니다.
참고 자료: