javascript - MERN 堆栈与两个模型的一对多关系模型一个是电影,另一个是评论模型
问题描述
我有兴趣创建一个太多的关系,电影是一个,评论是很多。目前他们是一个模型,目标是添加评论,而不必每次都添加另一部电影来纠正评论。
const mongoose = require("mongoose");
const MovieSchema = new mongoose.Schema({
title:{
type: String,
required:[true, "title is required."],
minlength:[3,"title must be at least 3 characters long."],
maxlength:[35,"title is limited to 25 characters."]
},
yourName:{
type: String,
required:[true, "Your name is requred"],
minlength:[2, "Your name must be 2 characters or longer."],
maxlength:[255, "Your name is limited to 25 characters or less."]
},
rate: {
type: Number,
required:[true, "please rate this movie"],
min:[0,"Must be 0 or greater"],
max:[5,"5 or less"]
},
review: {
type: String,
required:[true, "Review is required."],
minlength:[10, "Your Review must be 2 characters or longer."],
maxlength:[600, "Your Review is limited to 25 characters or less."]
}
},{timestamps:true})
const Movie = mongoose.model("Movie",MovieSchema);
module.exports = Movie;
解决方案
您应该为评论创建一个单独的模型,并将其添加ref
到Movie
它所属的模型中。
const mongoose = require("mongoose");
const ReviewSchema = new mongoose.Schema({
review: {
type: String,
required:[true, "Review is required."],
minlength:[10, "Your Review must be 2 characters or longer."],
maxlength:[600, "Your Review is limited to 25 characters or less."]
}
movieId: {
type: mongoose.Types.ObjectId,
ref: "Movie"
}
},{timestamps:true})
const Review= mongoose.model("Review",ReviewSchema );
module.exports = Review;
推荐阅读
- javascript - 单击下拉菜单时如何防止拖动事件?
- tomcat - Tomcat 设置以在出站 HTTPS 连接上使用 TLS1.2
- reactjs - 在 react-select 2 中显示带有选项的图像
- perl - perl中的标题行错误太多
- aframe - aframe-state-component 可以跨场景跟踪状态吗?
- ios - UITableViewCell 行为奇怪 - 文本变为白色
- http - JMeter - 超过最大执行时间但不停止请求时发送错误消息
- vba - 如何在 VBA 宏中应用 Excel 公式来查找倒数第二个单词
- apache - 大型提交在中途停止
- javascript - for循环在量角器中不起作用