• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

블로그 생성 후 응답 값에 id, _id 둘 다 나오는 이유가 궁금해요~

21.10.07 17:00 작성 조회수 709

0

안녕하세요. 강사님!
강의 너무나 유익하게 잘 보고 있습니다!
 
오늘 궁금한건 아래와 같아요.
블로그 post api 응답값에 _id 와 id가 모두 나오는데 각각 로직의 어느 부분에서 나오게 된건지 궁금해요!
 
{
"blog": {
"title": "Handmade title",
"content": "Handmade content",
"isLive": true,
"user": {
"_id": "615bd756d21a61989f312d16",
"username": "Bettye.Prosacco595",
"name": {
"first": "Marley",
"last": "Leuschke"
}
},
"_id": "615ea22b706c8fa1ae8e3950",
"createdAt": "2021-10-07T07:30:51.545Z",
"updatedAt": "2021-10-07T07:30:51.545Z",
"__v": 0,
"id": "615ea22b706c8fa1ae8e3950"
}
}
 
 

답변 1

답변을 작성해보세요.

0

mongoose에서 내부적으로 제공해주는 기능 때문입니다! MongoDB Compass에 들어가서 보시면 _id는 ObjectId 타입으로 생성이 되어 있지만 id는 없을거에요. mongoose로 문서들을 읽어오면 자동으로 id라는 필드를 추가해줘요. ObjectId 타입인 _id를 string으로 변환해서 id를 만들어줍니다.

 

이걸 API처리에서 리턴을 해주면 express는 _id, id 둘다 보내게 됩니다. JSON에 ObjectId 타입이 없어서 string으로 변환해서 전달이 되는거고요