✏️ 스키마와 모델
- 객체 모델이 매우 유연한 자바스크립트는 DB 를 파편화하고 최적화하기 어렵다는 단점이 있다.
- Mongoose 는 스키마와 모델을 도입해 균형을 찾고있다.
📍 스키마와 모델 만들기
- models 라는 별도의 디렉토리를 생성해 관리하는 것이 좋다.
- mongoose 를 import 해 스키마와 모델을 정의해 모델을 export 한다.
const mongoose = require('mongoose')
const vacationSchema = mongoose.Schema({
name: String,
slug: String,
category: String,
sku: String,
description: String,
location: {
search: String,
coordinates: {
lat: Number,
lng: Number,
},
},
priceInCents: Number,
tags: [String],
inSeason: Boolean,
available: Boolean,
requiresWaiver: Boolean,
maximumGuests: Number,
notes: String,
packagesSold: Number,
})
const Vacation = mongoose.model('Vacation', vacationSchema)
module.exports = Vacation
📍 모델 객체 Import
- 위 모델을 직접 사용한다면 DB 모듈을 추상화한 의미가 없기 때문에 모델 객체는 DB 모듈에서 import 해 method 를 생성하고,
필요한 곳에서 method 를 가져와 사용하는 것이 좋다.