• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

find() 가 리턴하는 instance member

23.07.31 22:45 작성 조회수 236

1

nestjs + mongoose 조합이지만,

https://velog.io/@modolee/mongodb-document-to-javascript-object

와 같이 find()가 리턴하는 인스턴스 내부가 `_doc` 처럼 되어 있었습니다.

저는 user.age 이렇게 사용하고 싶은데, user 밑에 age 라는 변수도 없고, 꼭 .toObject()를 해야 하나요?

아직 이 부분에 수수께끼가 풀리지 않았습니다.

설명해 주실 수 있나요?

답변 3

·

답변을 작성해보세요.

1

유영기님의 프로필

유영기

질문자

2023.08.02

믿음을 주셔서, 빨리 풀 수 있었습니다.

잘 동작합니다. 감사합니다.

1

_doc는 데이터베이스에서 넘어온 "raw" 데이터입니다. toObject()를 하지 않아도 UserSchema에 age가 정의되어 있다면 user.age가 자동으로 접근이 되어야 합니다. UserSchema를 확인해보시면 좋을 것 같아요

0

유영기님의 프로필

유영기

질문자

2023.08.01

UserSchema.set("toObject", { virtuals: true });
UserSchema.set("toJSON", { virtuals: true });

아직 모든 수업을 듣지 않은 상태인데요,

수업 코드에서 이 부분과 연관이 있지 않나 하는 생각이 들었습니다.

user.age로 했을 때는 나오는 값이 없나요? 저 설정은 json으로 변환했을 때 virtual 값들도 포함되도록하기 위함입니다. user.age는 저 설정과 상관 없이 접근이 되어야 합니다. UserSchema에 age가 정의되어 있고 실제로 해당 필드의 값이 디비상으로(_doc) 존재할 경우에는요