mongoose에는 스키마와 모델이라는 개념이 있는데, 이 둘은 혼동하기 쉽습니다. 스키마는 컬렉션에 들어가는 문서 내부의 각 필드가 어떤 형식으로 되어 있는지 정의하는 객체입니다.
이와 달리 모델은 스키마를 사용하여 만드는 인스턴스로, 데이터 베이스에서 실제 작업을 처리할 수 있는 함수들을 지니고 있는 객체입니다.
import mongoose from "mongoose";
const { Schema } = mongoose;
const PostSchema = new Schema({
title: String,
body: String,
tags: [String], //문자열만 들어가는 배열
publishedDate: {
type: Date,
default: Date.now, //현재날짜를 기본값으로 지정
},
});
스키마를 만들 때는 mongoose 모듈의 Schema를 사용하여 정의합니다. 그리고 각 필드의 이름과 필드의 데이터 타입 정보가 들어 있는 객체를 작성합니다. 필드의 기본값으로는 default값을 설정해 주면 됩니다.
예시코드
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,
})
스키마 내부에 다른 스키마를 내장시킬 수 있습니다
파일을 업로드하는 방법은 이렇다고 합니다
그냥 buffer넣으면 안댐