기본적으로 다음을 활용한다.
스키마를 통해 데이터의 이름과 타입을 지정하고
모델을 통해 해당 스키마의 모델을 만든다.
const VideoSchema = new mongoose.Schema({})
const model = mongoose.model("모델의 이름", VideoSchema)
코드 예시는 다음과 같다.
import mongoose from "mongoose";
const VideoSchema = new mongoose.Schema({
fileUrl: {
type: String,
required: "FileUrl is required" // 필수 항목을 작성하지 않았을 때 출력될 문구
},
title: {
type: String,
required: "title is required"
},
description: String,
views: {
type: Number,
default: 0
},
createAt: {
type: Date,
default: Date.now
},
Comment: {
type: mongoose.Schema.Types.ObjectId,
ref: "Comment" // Comment 모델의 객체 ID를 가져옴으로써 데이터를 연결함
}
});
const model = mongoose.model("Video", VideoSchema); //모델 이름이 Video임을 선언함
export default model;
여기서 Comment 모델과 연결하기 위해 작성한 데이터 타입을 살펴볼 필요가 있다. type은 mongoose.Schema.Types.ObjectId이며 ref는 "Comment"로, 모델의 이름이다. 이 모델의 이름이 어디에서 온 건인지 확인하기 위해 Comment 모델의 코드도 첨부한다
import mongoose from "mongoose";
const CommentSchema = new mongoose.Schema({
text: {
type: String,
required: "you need you write something"
},
createAt: {
type: Date,
default: Date.now
}
});
const model = mongoose.model("Comment", CommentSchema);
export default model;
물론 사용하기 위해서는 init.js와 같은 실행하는 파일에 다음과 같이 import해줘야 한다
import app from "./app";
import dotenv from "dotenv";
import "./models/Video";
import "./models/Comment";
dotenv.config();
const PORT = process.env.PORT;
const handleListening = () =>
console.log(`✅Listening on : http://localhost:${PORT}`);
app.listen(PORT, handleListening);
'Node, Nest, Deno > 🚀 Node.js (+ Express)' 카테고리의 다른 글
Node.js가 제공하는 내장 객체, 변수, 모듈 (0) | 2020.03.07 |
---|---|
multer 모듈을 이용해 이미지, 동영상을 업로드하기 (0) | 2020.02.27 |
도메인에 동적인 변수가 들어갔을 경우 실행 방법 (0) | 2020.02.18 |
mixin (0) | 2020.02.18 |
Controller에서 전달한 배열을 each로 사용해보자 (0) | 2020.02.18 |