schema-less NoSQL document 데이터베이스인 MongoDB 특성상 하나의 collection안에 여러 형태를 가진 document가 들어갈 수 있게 되는데 이러면 복잡한 데이터 조작시에 불편해지게 된다.
Mongoose는 MongoDB의 ODM 라이브러리 중 하나로 스키마 개념을 도입하여 정형화된 데이터를 보장해줄 수 있게 해준다.
또 다른 장점
populate의 사용
쿼리 추상화 및 정의 편의성
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
}
});
객체(Object)와 데이터 베이스의 데이터(Document)를 자동으로 매핑해주는 것
MongoDB는 실제 DB에 저장될 때 바이너리 형식의 BSON타입으로 저장된다고 한다. (속도와 공간 측면에서 JSON보다 유리해서)