我目前正在尝试通过Heroku构建一个简单的REST API来管理教师数据库及其为我的计算机科学课程开发的应用程序的评级。前端将用React编写,但这还不重要。 我在将评论推送到教师的一系列评论中时遇到了问题。 我的老师对象看起来像这样:
"_id": {
"$oid": "59f3662142c2480012d2d5f6"
},
"name": "Matt Albinson",
"subject": "Computer Science",
"createDate": {
"$date": "2017-10-27T17:00:17.908Z"
},
"roasts": [
{
"rating": 5,
"review": "He's Alright"
}
]
我希望能够向教师添加其他评论,并从教师的一系列评论中删除特定评论。以下是我正在使用的代码,目前无效。
app.post("/api/teachers/:id", function(req, res) {
var updateDoc = req.body;
db.collection(TEACHERS_COLLECTION).updateOne({ roasts: new ObjectID(req.params.roasts)}, updateDoc, function(err, doc) {
if (err) {
handleError(res, err.message, "Failed to update teacher");
} else {
updateDoc.roasts = req.params.roasts;
res.status(200).json(updateDoc);
}
});
});
编辑:这与重复的问题不同,因为这是一个普通的mongo问题。我正在使用Mongo编写node.js RestAPI,并且需要针对该特定用例的解决方案。当我发布到包含教师ID的网址时,我真的只是不确定如何将新项目添加到我的roasts数组中。我会找到发布到普通教师名单,但我似乎无法通过我的老师创建方法。