【问题标题】:How to running 2 queries for destroy in mongodb?如何在 mongodb 中运行 2 个销毁查询?
【发布时间】:2019-01-04 15:55:47
【问题描述】:

我正在使用 express 构建 api,并且我有发布关于数据代码的功能,并且 1 个帖子里面有项目。

我尝试运行 2 个查询来查找和删除帖子,如果帖子存在,它将被删除,之后我会查询以删除与帖子相关的项目。

const destroy = (req, res) => {
    DataTickerModel.findOneAndDelete({
      _id: req.params.id
    }, (err, dataTicker) => {
      if (err){
        res.send({
            success: false,
            message: 'Error: There is some error.'
        })
      } else {
        res.send({
            success: true,
            message: dataTicker.title+ ' deleted.'
        })
        DataItemModel.remove({
            dataId: {
                $in: [
                    dataTicker._id
                ]
            }
        })
      }
    })
    .catch(err => {
      res.status(500).json(err)
    })
}

所以我的预期是,如果我删除一个帖子,项目也会被删除。

【问题讨论】:

    标签: node.js mongodb mongoose mongodb-query


    【解决方案1】:

    试试下面的方法:

    const destroy = (req, res) => {
        DataTickerModel.findOneAndDelete({
          _id: req.params.id
        }, (err, dataTicker) => {
          if (err){
            res.send({
                success: false,
                message: 'Error: There is some error.'
            })
          } else {
    
             console.log('@@',req.params.id)
             console.log('@@',dataTicker._id)
    
            DataItemModel.remove({
                dataId: {
                    $in: [
                        req.params.id
                    ]
                }
            })
    
            res.send({
                success: true,
                message: dataTicker.title+ ' deleted.'
            })
          }
        })
        .catch(err => {
          res.status(500).json(err)
        })
    }
    

    并确保字段名称“dataId”正确

    【讨论】:

    • 尝试将 dataTicker._id 替换为 req.params.id
    • 是的,我也尝试过使用 params.id 但也没有用
    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    相关资源
    最近更新 更多