profile image

L o a d i n g . . .

몽구스를 사용하는 이유는 자바스크립트에서 몽고DB와 좀더 편하게 상호작용하기 위함이다.
몽구스에서 Model은 중요하다. Model은 몽구스의 도움으로 생성되는 자바스크립트 클래스로 몽고DB의 정보를 나타낸다. 구체적으로는 어떤 집합의 정보를 나타낸다.
 
몽구스에서 중요한 만큼 다양한 Model 메서드들이 존재한다.
 

모델들을 사용해서 CRUD를 할 수 있다.
 
일단 모델을 사용하기위한 스키마를 정의해보자.
 


스키마(Schema)?
 
몽고디비 각기 다른 키 집합을 자바스크립트의 타입으로 구조를 짜는 것. 

import mongoose from 'mongoose';
const { Schema } = mongoose;

const blogSchema = new Schema({
  title:  String, // String is shorthand for {type: String}
  author: String,
  body:   String,
  comments: [{ body: String, date: Date }],
  date: { type: Date, default: Date.now },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs:  Number
  }
});

몽고 DB 사이트에 있는 스키마 예시. 키 마다 각각의 자바스크립트 타입을 지정해주었다.
 
스키마를 만들었으니 이제 모델을 사용해보자

const Movie = mongoose.model('Movie', movieSchema)

첫번째 인자엔 이름, 두번째 인자엔 스키마 가 들어간다.
model 사용시 주의할점은 이름은 무조건 단수형에 첫글자는 대문자를 사용해야한다. 그래야 몽구스가 해당 이름에 맞춘 집합을 생성한다. 
모델은 Movie
집합은 movie 가 된다.
 

const amadeus = new Movie({
  title: 'Amadeus',
  year: 1986,
  score: 9.2,
  rating: 'R',
});

Movie라는 모델 클래스를 이용해 새로운 인스턴스를 만들어주었다. 
 
 
잘 들어왔는지 확인해보자.
 

 

 
자바스크립트 객체로 들어있는 amadeus 정보를 amadeous.save()로 몽고디비에 까지 저장해준다.
 
 

 
몽고디비 쉘을 통해서 확인해보면 Amadeus정보가 잘 들어와있는것까지 확인할 수 있다.
 
 

 
amadeus객체 내 평점 값을 수정해서 다시 저장해봤다.

영화평점 score가 수정한 값인 9.7로 데이터베이스에 잘 저장되었다. 
 
 

반응형
복사했습니다!