<MongoDB> Model - Comment(relationship with Video)

김민석·2021년 1월 8일
0

YouTube clone

목록 보기
25/54

저번 시간에 Video model을 생성했었는데요. 유튜브를 생각하면 video가 있으면 video에 댓글도 달리겠죠. 이번 시간에는 Comment Model을 만들어보고 Model간의 관계를 정의해주는 relationship과정도 진행하겠습니다.

project

youtube
  |models
   +|Comment.js
 *|init.js

Comment.js

import mongoose from 'mongoose';

const {Schema} = mongoose;

const CommentSchema = new Schema({
    text:{
        type: String,
        required: 'Text is required'
    },
    createdAt:{
        type: Date,
        default: Date.now
    }
});

init.js

import './models/Comment';

Relationship

이제 relationship을 정의해보겠습니다. video와 comment 사이에는 분명 어떤 relationship이 있습니다. relationship을 정해주는 방법이 두가지를 소개합니다.

  • 방법 1: Video에 commment id가 담긴 배열을 저장하는 방법
const VideoSchema = new Schema({
  /*생략*/
  comments:[{
    type: mongoose.Schema.Types.ObjectId,
    //ref는 reference를 의미합니다.
    ref: 'Comment'
  }]
});
  • 방법 2: comment에 video의 id를 저장하는 방법
    위에서 작성했던 CommentSchema에 video를 추가해봅시다. type은 ObjectId가 되구요. id는 'Video' model의 id라고 알려주기 위해 ref에 'Video'를 적어줍니다.
const CommentSchema = new Schema({
  /*생략*/
  video:{
  	type: Schema.Types.ObjectId,
    	ref: 'Video'
  }
});
profile
누구나 실수 할 수 있다고 생각합니다. 다만 저는 같은 실수를 반복하는 사람이 되고 싶지 않습니다. 같은 실수를 반복하지 않기 위해 기록하여 기억합니다.🙃

0개의 댓글