해결된 질문
작성
·
318
1
nestjs + mongoose 조합이지만,
https://velog.io/@modolee/mongodb-document-to-javascript-object
와 같이 find()가 리턴하는 인스턴스 내부가 `_doc` 처럼 되어 있었습니다.
저는 user.age 이렇게 사용하고 싶은데, user 밑에 age 라는 변수도 없고, 꼭 .toObject()를 해야 하나요?
아직 이 부분에 수수께끼가 풀리지 않았습니다.
설명해 주실 수 있나요?
답변 3
1
1
_doc는 데이터베이스에서 넘어온 "raw" 데이터입니다. toObject()를 하지 않아도 UserSchema에 age가 정의되어 있다면 user.age가 자동으로 접근이 되어야 합니다. UserSchema를 확인해보시면 좋을 것 같아요
0
UserSchema.set("toObject", { virtuals: true });
UserSchema.set("toJSON", { virtuals: true });
아직 모든 수업을 듣지 않은 상태인데요,
수업 코드에서 이 부분과 연관이 있지 않나 하는 생각이 들었습니다.
user.age로 했을 때는 나오는 값이 없나요? 저 설정은 json으로 변환했을 때 virtual 값들도 포함되도록하기 위함입니다. user.age는 저 설정과 상관 없이 접근이 되어야 합니다. UserSchema에 age가 정의되어 있고 실제로 해당 필드의 값이 디비상으로(_doc) 존재할 경우에는요