这是我的路线.js删除功能
//Delete the country info
router.delete('/:id/deleteans/:answersId', (req, res, next) => {
Forum.findOneAndDelete({_id:req.params.id},{$pull: {answers: {_id: req.params.answerId}} }, function (err, result) {
if (err) {
res.json(err);
}
else {
res.json(result);
}
});
});
我有这样的api
{
"success": true,
"forums": [
{
"createdAt": "2018-11-24T07:00:58.716Z",
"_id": "5bf8f907f6108603f4eb8c28",
"title": "how to chs right prgm",
"body": "zxsdcfghj",
"createdBy": "induece94@gmail.com",
"answers": [
{
"createdAt": "2018-11-24T07:00:58.716Z",
"_id": "5bf8f939f6108603f4eb8c29",
"content": "asdfghjmksadfghjk",
"createdBy": "induece94@gmail.com"
}
],
"__v": 1
}
]
}
我想删除该特定答案ID,但是我的删除功能(也删除问题)也是如此。我不知道我在哪里弄错了,请帮助我。
答案 0 :(得分:4)
您使用了Forum.findOneAndDelete(),因此它当然会找到一个论坛并将其删除。如果您只想删除答案,则需要找到论坛,然后从论坛中拉出答案,然后保存论坛。因此,您的答案将从论坛中删除。 像这样
let forum = await Forum.findOne({_id: req.params.id})
if (forum) {
forum.answers.pull({_id: req.params.answerId})
await forum.save()
}
或者这个
Forum.findOne({_id: req.params.id}).then((forum) => {
if (forum) {
forum.answers.pull({_id: req.params.answerId})
forum.save().then((result) => {
res.json(result)
}).catch((err) => {
res.json(err)
})
}
}).catch((err) => {
res.json(err)
})
答案 1 :(得分:0)
firefox ./hello.html
希望这行得通...