포시코딩

[Mongoose] Schema.virtual을 통해 _id(ObjectId)를 다른 이름으로 변경하기 본문

MongoDB

[Mongoose] Schema.virtual을 통해 _id(ObjectId)를 다른 이름으로 변경하기

포시 2022. 12. 14. 12:12
728x90
const mongoose = require('mongoose');

const postSchema = new mongoose.Schema({
  // ...생략
});

postSchema.virtual('postId').get(function() {
  return this._id.toHexString();  // 이 부분의 this._id에 해당하는 부분을 가상화 시킨다.
}); 
postSchema.set('toJSON', { virtuals: true });

module.exports = mongoose.model("Post", postSchema);

mongoose에서 제공하는 Schema의 가상화를 이용하는 방법인데

위에 코드에 적혀있듯, 이 Schema가 JSON화 될 때

this._id 즉, 이 스키마의 _id를 'postId'로 변경해서 내보내주는 방식이다.

 

이 기능을 통해 _id 뿐만 아니라 다른 field에 대해서도 원하는 이름을 부여해 사용할 수 있다.

728x90