【发布时间】:2018-11-09 17:20:37
【问题描述】:
我有两个模型,一个是我的用户模型,另一个是我的课程模型。我想拥有它,因此当用户(教师)创建课程时,它将该课程分配给他们,反之亦然。以下是我的模型以便更好地解释:
课程架构/模型:
var CourseSchema = new Schema({
courseID: {
type: Number,
unique: true
},
courseName: String,
courseDesc: {
type: String,
default: "No course description provided."
},
coursePicture: {
type: String,
required: false
},
teacher: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
],
students: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Student'
}
]
})
用户架构/模型:
var UserSchema = new mongoose.Schema({
firstName: String,
lastName: String,
email: String,
courses: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Course'
}
],
password: String
});
基本上,我想在我的前端使用它,我可以执行 course.teacher.firstName 或 user.courses 之类的操作。我的模式在两个不同的文件中,但我相信这很好。这就像在用户创建帖子时为其分配帖子一样。我不知道我怎么能做到这一点,因为我已经尝试了很多事情。
现在,我目前有这个用于创建课程。
// Creates a new course
router.post('/create', function (req, res) {
Course.create({
courseID : req.body.courseID,
courseName : req.body.courseName,
courseDesc : req.body.courseDesc,
coursePicture : req.body.coursePicture,
teacher : req.body.id,
students: req.body.students
},
function (err, course) {
if (err) return res.status(500).send("There was a problem adding the information to the database.");
res.status(200).send(course);
});
});
我已经在该代码 ^ 所属的控制器中引用了 User 模型,因此 var User = require('../user/User'); 我相信这是实现这一目标所必需的。如果您有任何问题,请告诉我,因为我不擅长解释此类问题。
希望有人能帮帮我!
谢谢。
【问题讨论】:
-
那是什么问题?
-
对不起,我应该改写一下。我没有问题,我只是不知道如何将课程链接到用户(教师)并将用户(教师)链接到课程,因此我可以使用帖子中提到的字段: course.teacher .firstName 或 user.courses
-
这是个好问题。我在下面的回答中提供了一个全面的答案以及一些数据库设计技巧。
标签: javascript node.js rest express mongoose