@Schema()와 @Prop()
username, email,
createdAt 같은 필드의 필수 여부와 기본값을 클래스에
적는다.
문서형 데이터는 컬렉션에 자유롭게 저장되지만, NestJS에서는
@Schema(), SchemaFactory,
forFeature(), @InjectModel()을 이어 데이터
구조와 접근 경계를 잡는다.
@Schema()와 @Prop()
username, email,
createdAt 같은 필드의 필수 여부와 기본값을 클래스에
적는다.
SchemaFactory.createForClass()데코레이터가 붙은 클래스를 실제 Mongoose 스키마 객체로 바꿔 컬렉션 모델 생성에 사용한다.
스키마 변환forFeature() 모델 등록
{ name: User.name, schema: UserSchema }를 사용자 모듈에
등록해 서비스에서만 사용할 모델을 연다.
@InjectModel(User.name)
서비스는 모델을 주입받아 save(),
find().exec(), deleteOne()으로 컬렉션을
다룬다.
MongooseModule.forRoot()
Docker 또는 Atlas의 MongoDB URI를 루트 모듈에 연결하고, 인증이
필요한 Docker 환경에서는 authSource=admin을 확인한다.