728x90
반응형
이 글은 NestJS document 사이트 기반으로 작성했습니다.
https://docs.nestjs.kr/techniques/mongodb
몽고DB설치하는 법은 아래 링크에서 확인 부탁드립니다.
mongoDB가 준비되었다면 이제 mongoose를 프로젝트 폴더에 설치해준다.
$ npm install --save @nestjs/mongoose mongoose
이제 MongooseModule을 루트 AppModule로 가져올 수 있다. ( id와 패스워드는 각자 설정한대로)
forRoot() 메소드는 Mongoose 패키지의 mongoose.connect()와 동일한 구성 객체를 허용한다.
app.module.ts
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
@Module({
imports: [MongooseModule.forRoot('mongodb://test:test1234@localhost:27017/admin')],
})
export class AppModule {}
Mongoose에서는 모든 것이 스키마에서 파생된다. 스키마는 모델을 정의하는 데 사용된다.
schemas 폴더를 만들고 cat.schema.ts 파일을 작성해보자.
/src/cat/schemas/cat.schema.ts
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';
export type CatDocument = Cat & Document;
@Schema()
export class Cat {
@Prop()
id: number;
@Prop()
name: string;
@Prop()
age: number;
@Prop()
breed: string;
}
export const CatSchema = SchemaFactory.createForClass(Cat);
@Props() 데코레이터는 문서의 속성을 정의한다. 예를 들어 다음과 같이 정의할 수 있다.
@Prop([String])
tags: string[];
또는 사용 가능한 옵션에 대한 옵션 객체 인수를 받는다. 기본값을 지정하거나 속성이 필요한지 여부를 나타낼 수 있다.
@Prop({ required: true })
name: string;
또는 데코레이터를 사용하지 않음을 선호하는 경우 스키마를 수동으로 정의할 수 있다.
export const CatSchema = new mongoose.Schema({
name: String,
age: Number,
breed: String,
});
728x90
반응형
'Back-End > Nest.js' 카테고리의 다른 글
Nest.js | MongoDB | Find (0) | 2021.10.06 |
---|---|
Nest.js | MongoDB | Model,Schema,Controller (0) | 2021.10.06 |
Nest.js | E2E TESTING | PATCH and DELETE (0) | 2021.09.30 |
Nest.js | E2E TESTING | Testing GET movies id (0) | 2021.09.30 |
Nest.js | E2E TESTING | Movies 테스트 (0) | 2021.09.30 |