首页 > 解决方案 > 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;

标签: javascriptnode.jsreactjsmodelone-to-many

解决方案


您应该为评论创建一个单独的模型,并将其添加refMovie它所属的模型中。

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;

推荐阅读