<MongoDB> User Model

김민석·2021년 1월 15일
0

YouTube clone

목록 보기
26/54

비디오, 댓글 Model에 이어 User 모델을 생성해봅니다.

project

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

User.js

relationship 정의한 부분을 보면 videos와 comments를 배열로 뒀는데요. 한 유저가 작성하는 video와 comment가 여러개일 수 있으므로 이와 같이 했습니다.

import mongoose from 'mongoose';

const userSchema = new mongoose.Schema({
  name: String,
  email: String,
  avatarUrl: String,
  facebookId: Number,
  githubId: Number,
  videos: [
    {
      type: mongoose.Schema.Types.ObjectId,
      ref: "Video"
    }
  ],
  comments: [
    {
      type: mongoose.Schema.Types.ObjectId,
      ref: "Comment"
    }
  ]
});

const model = mongoose.model("User", userSchema);
export default model;

init.js

위에서 export한 User를 database와 연결해주기위해 init.js에서 import해줍니다.

import './models/User';

Video.js

비디오를 업로드하는 업로더는 User가 되잖아요? User와 Video의 relationship도 Video Schema로 정의해주겠습니다.

import mongoose from 'mongoose';

cosnt {Schema} = mongoose;

cosnt VideoSchema = new Schema({
  creator: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "User"
  }
});

Comment.js

댓글도 작성하는 작성자가 있고 작성자는 User가 되겠죠? CommentSchema에 relationship을 정의해주겠습니다.

import mongoose from 'mongoose';

const {Schema} = mongoose;

const CommentSchema = new Schema({
  creator: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "User"
  }
})
profile
누구나 실수 할 수 있다고 생각합니다. 다만 저는 같은 실수를 반복하는 사람이 되고 싶지 않습니다. 같은 실수를 반복하지 않기 위해 기록하여 기억합니다.🙃

0개의 댓글