我正在使用丰富事件集合中的 ID 删除一个 EnrichedEvent。而且我还需要在项目集合中更新相同的内容。我能够实现这一点,但是一旦之后
删除丰富的集合,当我再次尝试删除相同的 id 时,它的显示事件仅被删除。当我第一次删除事件时,它显示 {n:1, Ok:1}
,
如果我下次删除相同的 ID,它会显示 {n:0, Ok:1}
这是正确的。但我想知道如何访问这些 {n:X,OK:X}
?这样我就可以写一个 If 条件说
if Result== {n:1}
then event removed,否则事件id不存在。或者有没有其他方法可以实现这一目标,请指导我正确的方向。
她的是我的代码。
router.delete("/:projectId/event/enriched/:enrichedEventId", (req, res, next) => {
const enrichedEventId = req.params.enrichedEventId;
const projectId= req.params.projectId;
console.log(enrichedEventId);
console.log(projectId);
Project.findOneAndUpdate({ _id: projectId},
{ $pull: { enrichedEvents: enrichedEventId} })
.exec()
.then(project =>{
if(project) {
console.log("--------------");
console.log(enrichedEventId);
EnrichedEvent.remove({ _id: enrichedEventId })
.exec()
.then(result => {
console.log(result)
if (result== null) {
return res.status(404).json({
message: "ID not found"})
}else{
console.log(result);
res.status(200).json({
message: "event removed"});
}
})
} else if(project == null){
res.status(400).json({
message: "projectId is invalid"
})}
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
});
最佳答案
如果找到文档,那么您将得到 --> { n: 1, ok: 1 }
如果没有,那么您将得到 --> { n: 0, ok: 1 }
然后您可以简单地将条件与 n = == 0
或 n === 1
。
Project.findOneAndUpdate(
{ _id: projectId },
{ $pull: { enrichedEvents: enrichedEventId }}
).then(project => {
if(project) {
EnrichedEvent.remove({ _id: enrichedEventId }).then(result => {
if (result.n === 0) {
return res.status(404).json({ message: "ID not found" })
} else {
return res.status(200).json({ message: "event removed"})
}
})
} else {
return res.status(400).json({ message: "projectId is invalid" })
}
}).catch(err => {
return res.status(500).json({ error: err })
})
关于javascript - 访问删除请求 Mongoose 返回的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51167668/