首页 > 解决方案 > 如何在express js中按id从多个集合中删除记录?

问题描述

我创建了三个系列,

家庭 {familyname , _id}

根 {rootname familyId _id}

child{childname rootId familyId _id}

现在如果我删除家庭,根和孩子也应该被删除

到目前为止,我已经尝试过了,但它不起作用

router.delete("/:familyId", (req, res, next) => {
  const id = req.params.familyId;
  Family.remove({ _id: id })
  Root.remove({ _id: id })
  Child.remove({ _id: id })
    .exec()
    .then(result => {
      res.status(200).json({
          message: 'deleted',
      });
    })
    .catch(err => {
      console.log(err);
      res.status(500).json({
        error: err
      });
    });
}); 

标签: node.jsmongodbexpress

解决方案


您可以使用该.remove()方法返回的承诺,如下所示:

router.delete("/:familyId", (req, res, next) => {
    const id = req.params.familyId;

    const family = Family.remove({ _id: id });
    const root = Root.remove({ familyId: id });
    const child = Child.remove({ familyId: id });

    Promise.all([family, root, child]).then(result => {
        console.log(result);
        res.status(200).json({
            message: 'deleted',
        });
    }).catch(err => {
        console.error(err);
        res.status(500).json({
            error: err
        });
    });
}); 

推荐阅读