import mongoose from "mongoose";
mongoose.connect("mongodb://127.0.0.1:27017/wetube");
const db = mongoose.connection;
const handleOpen = () => console.log("✅ Connected to DB");
const handleError = (error) => console.log("❌ DB Error", error);
db.on("error", handleError);
db.once("open", handleOpen);
모델의 형식 지정
import mongoose from "mongoose";
const videoSchema = new mongoose.Schema({
title: { type: String, required: true },
description: { type: String, required: true },
createdAt: { type: Date, default: Date.now },
hashtags: [{ type: String }],
meta: {
views: { type: Number, default: 0 },
rating: { type: Number, default: 0 },
},
});
const Video = mongoose.model("Video", videoSchema);
export default Video;
{type : TYPE}
대신 TYPE
으로 대체 가능[{type: TYPE}]
로 사용가능import Video from './models/Video';
save, update, delete 등을 할 때 공통적으로 어떤 행동을 지정할 때 사용
videoSchema.pre("save", async function () {
this.hashtags = this.hashtags[0]
.split(",")
.map((word) => word.trim())
.map((word) => {
return word[0] === "#" ? word : `#${word}`;
});
});
스키마에 static 함수를 추가하는 방법. 스키마를 통해서 어디서든 사용가능하다는 장점이 있음.