javascript - 访问删除请求 Mongoose 返回的结果

标签 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} 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 = == 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 })
})

关于javascript - 访问删除请求 Mongoose 返回的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51167668/

相关文章:

javascript - 根据数据库中的产品过滤购物车项目

javascript - Node.js AES 解密 iOS 加密的 NSString

mongodb - 在 MongoDB Stitch 上更新用户配置文件

mongodb - Cosmos DB 错误 : com. mongodb.MongoCommandException:命令失败,错误 11: 'Database account is not found'

MongoDB $or/$and 命令优化

javascript - 表单在 onsubmit 函数完成之前提交

javascript - 我从 postman 和我的 JS 代码向我的网络服务发送 POST - 响应不同,为什么?

javascript - 在根级别显示加载指示器,直到所有路由解析完成

javascript - 如何分配数组中的所有对象?

javascript - 映射数组返回 Unresolved promise