为什么 Mongoose 会删除我数据库中最顶部的项目,而不是与目标项目匹配的 ID?
Why is Mongoose deleting the top most item in my database, rather than the id matching the target item?
抱歉老是提问题,但是这个我不太明白。
我有一个按钮可以激活下面的 /post 命令以通过 Mongoose 删除项目。但是,我发现它忽略了附加的 :id。
console.log 显示删除目标条目的正确 ID,id 变量也显示被定位的正确 ID,但被删除的条目似乎是我列表中最上面的条目,而不是目标 ID。
下面是否有我没有看到的明显原因可能会导致此问题? server.js /post 下面:
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。
抱歉老是提问题,但是这个我不太明白。
我有一个按钮可以激活下面的 /post 命令以通过 Mongoose 删除项目。但是,我发现它忽略了附加的 :id。
console.log 显示删除目标条目的正确 ID,id 变量也显示被定位的正确 ID,但被删除的条目似乎是我列表中最上面的条目,而不是目标 ID。
下面是否有我没有看到的明显原因可能会导致此问题? server.js /post 下面:
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。