访问从删除请求猫鼬返回的结果

时间:2018-07-04 07:04:16

标签: javascript node.js mongodb mongoose

我正在使用来自丰富事件集合的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
        });
    });
});

1 个答案:

答案 0 :(得分:1)

如果找到了文档,那么您将获得-> { n: 1, ok: 1 } 如果没有,则将得到-> { n: 0, ok: 1 } ,然后您可以简单地用n === 0n === 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 })
})