很抱歉大家不断提出问题,但这个问题我不太明白。
我有一个按钮,可以激活下面的/post 命令,以通过 Mongoose 删除项目。但是,我发现它忽略了附加的 :id。
console.log 显示删除目标条目的正确 id,id 变量还显示正在定位的正确 id,但被删除的条目似乎是我列表中最上面的条目,而不是目标 ID。
下面是否有一些我没有看到的明显的东西可能会导致这种情况? server.js/下面发布:
app.post('/remove/team/:id', (req, res) => {
console.log("Delete command received. " + req.params.id)
var id = req.params.id;
if(!ObjectID.isValid(id)) {
return res.status(404).send();
}
Team.findOneAndRemove(id).then((team) => {
if(!team) {
return res.status(404).send();
}
res.render("deleteSuccess.hbs", {id});
}).catch((e) => {
res.status(400).send();
});
});
一如既往,我们非常感谢您提供的任何帮助。感谢您抽出时间。
最佳答案
请运行此查询:-
Team.findOneAndRemove({ _id: id })
.then()
.catch()
findOneAndRemove 将条件作为第一个参数,而不仅仅是 id。
关于mongodb - 为什么 Mongoose 删除我数据库中最上面的项目,而不是与目标项目匹配的 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55197200/