【问题标题】:CRUD : How to delete a product category with all products inside?CRUD:如何删除包含所有产品的产品类别?
【发布时间】:2020-03-31 17:03:14
【问题描述】:

我需要删除一个产品类别,其中包含所有产品。在 Product 模型中,category 是一个对象引用。

有没有简单的方法,一些已知的方法? 我试过removeAll,它说removeAll不是一个函数。

router.delete(`/category/:id/delete`, async (req, res) => {
  try {
    if (!req.params.id) res.send("missing id");
    else {
      await Product.removeAll({ category: req.params.id });

      const categoryToDelete = await Category.findById(req.params.id);
      await categoryToDelete.remove();

      res.send("category deleted");
    }
  } catch (error) {
    res.status(400).json({ error: error.message });
  }
});

感谢您的知识和帮助

【问题讨论】:

  • 什么是产品?什么是类别?您应该提供更多有关情况的线索。

标签: javascript express backend crud


【解决方案1】:
router.delete(`/category/:id/delete`, async (req, res) => {
try {
  if (!req.params.id) res.send("missing id");
  else {

    await Product.remove({ category: req.params.id });

    res.send("category deleted");
  }
 }
  } catch (error) {
     res.status(400).json({ error: error.message });
  }
});

只需将查询传递给 remove 方法,这将删除所有匹配的文档

【讨论】:

  • 哦!很简单 !!我在想 .remove 一次只删除一个对象。非常感谢,我觉得自己很笨但也松了口气:)
猜你喜欢
  • 1970-01-01
  • 2018-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多