Mongoose

NestJS Mongoose 연동 구조

Nest 모듈은 Mongoose 연결과 스키마 모델을 등록하고, 서비스는 주입된 모델로 데이터 작업을 수행한다.

MongoDB 의존성이 주입되는 흐름

module wiring

MongooseModule

forRoot로 연결 정보를, forFeature로 모델을 등록한다.

Schema 클래스

컬렉션 문서의 필드와 타입 규칙을 선언한다.

Model 주입

@InjectModel로 서비스에 쿼리 가능한 모델을 넣는다.

Service 처리

생성, 조회, 수정 로직을 컨트롤러 밖에서 관리한다.

forRootforFeatureSchemaInjectModelService
데이터 계층 해석

MongoDB 연결 코드는 모듈 경계에 두고, 실제 데이터 규칙은 서비스와 스키마가 나눠 갖게 하는 편이 읽기 쉽다.