Mongoose 모듈 지도

MongoDB Mongoose 모듈 제어

문서형 데이터는 컬렉션에 자유롭게 저장되지만, NestJS에서는 @Schema(), SchemaFactory, forFeature(), @InjectModel()을 이어 데이터 구조와 접근 경계를 잡는다.

schema

@Schema()@Prop()

username, email, createdAt 같은 필드의 필수 여부와 기본값을 클래스에 적는다.

문서 구조
factory

SchemaFactory.createForClass()

데코레이터가 붙은 클래스를 실제 Mongoose 스키마 객체로 바꿔 컬렉션 모델 생성에 사용한다.

스키마 변환
feature

forFeature() 모델 등록

{ name: User.name, schema: UserSchema }를 사용자 모듈에 등록해 서비스에서만 사용할 모델을 연다.

모듈 스코프
model

@InjectModel(User.name)

서비스는 모델을 주입받아 save(), find().exec(), deleteOne()으로 컬렉션을 다룬다.

데이터 작업
uri

MongooseModule.forRoot()

Docker 또는 Atlas의 MongoDB URI를 루트 모듈에 연결하고, 인증이 필요한 Docker 환경에서는 authSource=admin을 확인한다.

연결 문자열