mongdb 스키마 공식 문서와 형태가 다른 이유 궁금합니다.
103
投稿した質問数 3
수업에서 보여주신 코드와 nest.js 공식 문서에서 제공하는 스키마 파일의 구조가 살짝 다른 이유가 궁금합니다.
1. xtyatDocument = HydratedDocument<Cat>; 수업 코드에서는 이 부분이 없습니다. 무슨 차이인가요?
export class Cat {공식 문서 제공 파일에서는 아무것도 extends하지 않는데, 수업에서는 다릅니다. 무슨 차이인가요?
[공식 문서 제공 코드]
```
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { HydratedDocument } from 'mongoose';
export type CatDocument = HydratedDocument<Cat>;
@Schema()
export class Cat {
@Prop()
name: string;
@Prop()
age: number;
@Prop()
breed: string;
}
export const CatSchema = SchemaFactory.createForClass(Cat);
```
回答 1
0
안녕하세요, 인프런 AI 인턴입니다. 김지혜님 질문에 대해 답변 드리겠습니다.
1. HydratedDocument<Cat>의 차이
기본적으로 HydratedDocument<T>는 MongoDB 문서가 Mongoose의 문서로 변환되는 데 사용되는 TypeScript 타입입니다. 실제로 수업 코드에 HydratedDocument를 사용하지 않더라도 Mongoose Document 타입의 혜택을 받을 수 있습니다. 이를 통해 Mongoose 관련 메서드나 속성을 사용할 수 있게 되죠. 만약 수업에서 이를 명확히 명시하지 않았다면, NestJS와 Mongoose의 기본 설정에서 이를 자동 처리할 수도 있습니다.
2. 클래스 확장 관련 차이
export class Cat에서 다른 클래스를 확장하지 않는 이유는 추상 클래스나 다른 기능이 필요하지 않은 경우에는 기본 클래스로 사용하는 것이기 때문입니다. 수업에서 확장을 했다는 것은, 추가적인 기능이나 인터페이스 구현이 필요했기 때문일 것입니다. 예를 들어, 추가적인 메서드나 속성을 제공하기 위해 다른 클래스를 확장했을 가능성이 있습니다. 이를 통해 좀 더 모듈화되거나 재사용 가능한 코드를 작성할 수 있습니다.
관련된 질문이 이미 설명된 게시물이 있어서 이를 참고하시면 더 많은 기본 설정과 옵션 차이에 대한 확실한 이해를 도울 수 있을 것입니다. NestJS와 Mongoose의 Document 타입과 클래스 확장에 대한 기본 설명을 참고해 주세요.
위 답변이 도움이 되셨길 바라며, 추가적인 질문이 있으시면 언제든지 말씀해 주세요. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
프로젝트 환경 세팅할 때 최신 노드 버젼을 사용하시는 분들은 참고하셔도 좋을 것 같아요~
2
80
1
DTO에 대한 질문
1
87
2
백엔드 MVC에서 View의 역할은 무엇인가요?
1
93
2
추가 업데이트 관련 건
0
90
2
nest js 버전문제
0
79
2
라인 끝에 에러 표시(eslint) 때문에 구글 찾아 보니.
0
74
1
전체 고양이 조회 라우터 중 error.message 오류
0
67
1
캡슐화 추가 설명 중 단일책임원칙 관련 질문
0
104
0
TypeORM과 mysql을 사용하시는 분들
4
140
1
42강 고양이끼리 소통 댓글 구현 중 Schema hasn't been registered for model 'comments' 에러 해결
0
82
1
채팅 이슈
0
133
1
모듈이 더 이상 지원하지 않는답니다
0
206
1
오류가 있습니다
0
106
1
import 에서 오류가 납니다
0
127
1
이런 오류가 나옵니다
0
100
1
에러가 발생합니다
0
109
1
프론트 에러 뜨는데 수정 안해주시나요
0
156
1
emit() broadcast.emit() 질문있습니다
0
101
1
서버연결이 안됩니다.
1
403
1
[PM2][ERROR] Command not found
0
520
1
S3에 업로드까지는 성공했는데 사진이 나오지 않습니다.
0
248
1
error_code : Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.ts(2339)
0
601
1
jwt를 따로 연습하고 있는데 env를 못읽는 것 같습니다.
0
322
2
Ec2로 안하시는 이유가 있을까요?
0
343
1

