728x90
반응형

이 글은 NestJS document 사이트 기반으로 작성했습니다.

 

https://docs.nestjs.kr/techniques/mongodb

 

네스트JS 한국어 매뉴얼 사이트

네스트JS 한국, 네스트JS Korea 한국어 매뉴얼

docs.nestjs.kr

 

몽고DB설치하는 법은 아래 링크에서 확인 부탁드립니다.

 

https://typo.tistory.com/entry/MongoDB%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0?category=866148

 

MongoDB | 설치하기, 삭제하기

1.    몽고DB의 public GPG key 주입 ubuntu@dev:~$ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - OK 2.    몽고DB를 위한 리스트 파일 생성 ubuntu@dev:~$ echo "d..

typo.tistory.com

 

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
반응형

+ Recent posts