- 스키마는 컬렉션에 들어가는 문서 내부의 각 필드
- 모델은 스키마를 사용하여 만드는 인스턴스
- 데이터베이스에서 실제 작업을 처리하는 함수들을 지니고 있는 객체
schema와 모델 생성
- schema와 모델에 관련한 코드는
src/models
에서 관리
- 제목, 내용, 태그, 작성일
Schema
는 mongoose
의 모듈을 사용
- 아래와 같이
AuthorSchema
의 경우 BookSchema
의 일부로도 정의가 가능하다.
import mongoose from 'mongoose';
const { Schema } = mongoose;
const AuthorSchema = new Schema({
name: String,
email: String,
});
const BookSchema = new Schema({
title: String,
description: String,
authors: [AuthorSchema],
meta: {
likes: Number,
},
extra: Schema.Types.Mixed,
});
const PostSchema = new Schema({
title: String,
body: String,
tags: [String],
publishedDate: {
type: Date,
default: Date.now,
},
});
const Post = mongoose.model('Post', PostSchema); // schema name(=posts), schema obj, <custom collection name>
export default Post;
- mongodb에서는
model
의 파라미터 첫번째로 Post
를 넘기는데 컬렉션을 생성할때 @+s
로 생성
- 만약 내가 정의하고 싶은 컬렉션의 이름이 있다면 3번째 파라미터로
custom_collection_name
을 넘기면 된다.