如何在mongodb中运行2个销毁查询?

时间:2019-01-04 06:48:14

标签: node.js mongodb mongoose mongodb-query

我正在使用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)
    })
}

所以我期望的是,如果我删除帖子,那么这些项目也将被删除。

1 个答案:

答案 0 :(得分:0)

尝试如下操作:

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”正确