[MongoDB] 가상 Mongoose
이번 글에서는 Mongoose에서 제공하는 가상(Mongoose Virtual)에 대해 알아보겠습니다. 가상 Mongoose는 실제 데이터베이스에는 존재하지 않지만 스키마에 추가되어 있는 가상의 특성을 의미합니다. 이를 통해 스키마에 정의된 특성들을 조합하거나 가공하여 새로운 정보를 만들어낼 수 있습니다.
가상 Mongoose 소개
가상 Mongoose는 실제로는 데이터베이스에 저장되지 않지만, Mongoose를 통해 접근할 수 있는 스키마 내 여러 특성의 집합입니다. 이는 데이터베이스에서 파생된 것이 아닌, Mongoose에서 제공하는 기능으로 사용자가 원하는 형태로 데이터를 가공할 수 있도록 합니다.
예시: fullName 가상 특성
가장 간단한 예시로는 first name과 last name이 있는 사용자 모델을 가정합니다. 만약 우리가 fullName이라는 가상 특성을 스키마에 추가하면, 데이터베이스에 실제로 fullName이 저장되는 것은 아니지만 마치 그렇게 동작하도록 만들 수 있습니다.
const personSchema = new mongoose.Schema({
first: String,
last: String
});
personSchema.virtual('fullName').get(function() {
return `${this.first} ${this.last}`;
});
위의 예시에서 fullName은 가상 특성으로, get 함수를 통해 first와 last를 조합하여 반환합니다.
사용 예시
const Person = mongoose.model('Person', personSchema);
const tammy = new Person({ first: 'Tammy', last: 'Chow' });
console.log(tammy.fullName); // Tammy Chow
위에서 tammy.fullName을 호출하면 마치 fullName이 데이터베이스에 저장된 것처럼 사용할 수 있습니다.
가상 Mongoose는 실제 데이터베이스에 영향을 주지 않으면서도 스키마의 특성을 확장하고 가공할 수 있는 강력한 도구입니다. 이를 통해 개발자는 편리하게 원하는 형태의 데이터를 조합하거나 가공할 수 있습니다. Mongoose의 가상은 다양한 활용 가능성을 제공하므로, 실제 프로젝트에서 유용하게 활용할 수 있습니다.