【发布时间】:2018-11-21 11:31:10
【问题描述】:
我在一个名为 Course 的模式中有一个名为 students 的数组。我创建了一条路线,允许我使用学生的ObjectID 将学生添加到该数组中,如下所示:
router.put('/addStudent/:courseID', function (req, res) {
Course.findOneAndUpdate({courseID: req.params.courseID}, {$push: {students: req.body.students}})
.populate('students')
.exec(function (err, course) {
if (err) return res.status(500).send("There was a problem adding this information to the database");
res.status(201).send(course);
})
});
当我尝试使用以下 JSON 正文向我的端点发出 PUT 请求时:
{
"students":["5b1f06cafa355c2d187c344f"]
}
什么都没有发生,它只是将未添加学生 ID 的课程发回给我。我如何做到这一点,以便我可以将更多学生 ID 添加到数组中?我不希望它用学生 ID 替换数组,我想在我提出更多请求时继续添加更多。
谢谢!
【问题讨论】:
-
把你的架构和内容放在
req.body.students -
这没有任何意义。添加一个 ObjectID 很好,但是当我尝试添加另一个 ObjectID 时,它会在应该添加时用新的 ObjectID 替换第一个 ObjectID。
标签: node.js mongodb express mongoose