본문으로 바로가기

기본적으로 다음을 활용한다.

스키마를 통해 데이터의 이름과 타입을 지정하고

모델을 통해 해당 스키마의 모델을 만든다.

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);

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체