我正在使用来自丰富事件集合的ID删除EnrichedEvent。而且我还需要在项目集合中进行更新。我能够实现这一点,但是之后
删除丰富的集合,当我再次尝试删除相同的ID时,仅显示事件删除。当我第一次删除活动时,它显示{n:1, Ok:1}
,
如果我下次删除相同的ID,则会显示{n:0, Ok:1}
是正确的。但我想知道如何访问这些{n:X,OK:X}
?这样我可以写一个If条件说
if Result== {n:1}
然后删除事件,否则事件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
});
});
});
答案 0 :(得分:1)
如果找到了文档,那么您将获得-> { 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 })
})