mongoDb 데이터베이스의 스키마와 모델

omnigi·2022년 3월 27일
0

백엔드

목록 보기
4/8

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넣으면 안댐

0개의 댓글