비디오, 댓글 Model에 이어 User 모델을 생성해봅니다.
youtube
|init.js
|models
+|User.js
*|Video.js
*|Comment.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;
위에서 export한 User를 database와 연결해주기위해 init.js에서 import해줍니다.
import './models/User';
비디오를 업로드하는 업로더는 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"
}
});
댓글도 작성하는 작성자가 있고 작성자는 User가 되겠죠? CommentSchema에 relationship을 정의해주겠습니다.
import mongoose from 'mongoose';
const {Schema} = mongoose;
const CommentSchema = new Schema({
creator: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
}
})