当前位置: 首页 > 知识库问答 >
问题:

NodeJs Mongoose更新类别产品

都飞跃
2023-03-14

我有Category mongoose文档,我想更新他的产品。每次更新产品时,只需重写它们,而我只有最后一个put记录。我如何填充产品?

const category = new mongoose.Schema({
  
  products: [{ type: mongoose.Schema.Types.ObjectId, ref: "Product" }],
  
});

    module.exports = mongoose.model("Category", category);

    exports.updateCategory = catchAsyncErrors(async (req, res, next) => {
  let category = await Category.findById(req.params.id);


  category = await Category.findByIdAndUpdate(req.params.id, req.body, {
    new: true,
    runValidators: true,
    useFindAndModify: false,
  })

  res.send(200).json({
    success: true,
    category
  });
});

共有1个答案

蔡宏大
2023-03-14

假设您的产品被称为Body中的产品:

category = await Category.findByIdAndUpdate(req.params.id, { $push: { products: req.body.products } }, {
  new: true,
  runValidators: true,
  useFindAndModify: false,
})
 类似资料:
  • 我发现所有产品的数量不等于< code>home类别中的产品数量。这是因为在添加产品时,并不总是选择最大的父类别。因此,有些产品属于< code>home,而有些则不属于。 虽然我需要为类别<code>主页<code>页面显示正确数量的产品,但我在数据库中查找了包含类别的列,但在<code>ps_product</code>或<code>ps_product_lang</code>中未找到它们。

  • 我想从一个类别中获得新产品,所以我试图改变控制器。 在prestashop 1.7中 里面有这个功能 我把它改成了 但它仍在展示所有产品,而不是该类别的产品。 我决定用不同的方式, 在产品中。我写的php 在我的控制器中,我从product controller中的新函数中获取产品id,然后获取产品属性 它正在工作,但我认为与相比,操作太多了。

  • 产品更新 2021年9月9日 更新内容:「诸葛慧表」 诸葛io本次更新了慧表功能,可以满足您更多的分析与查看指标场景,支持拓展自定义分析模型与报表能力;为您提供数据采集、治理、分析、可视化一体化的产品体验。 查看详情 产品更新 2021年8月11日 更新内容:「数据预警支持飞书&邮件渠道」 诸葛io本次更新对数据预警功能做了升级,在原有的微信通知渠道基础上支持了飞书及邮件渠道通知,您在配置数据预警

  • 希望你能帮我解决这个问题。我有一个问题,一些产品在子类别404'ing当去那里的产品页面。但奇怪的是,我在谷歌上找不到的只是他们中的一些人在做这件事。 实例 SKU:产品1--类别:类别1 SKU:产品2--类别:类别2,子类别1 SKU:Product3--类别:类别2,子类别1 SKU:Product4--类别:类别2,子类别1 将显示Product1、Product2、Product4。带有

  • 问题内容: 我的JTable有问题。我的JTable显示数据库的内容。一个数据库表具有名称类别。每个类别都显示在JComboBox中。如果单击类别,则应该更新表内容。 这是我的代码的简短摘要,因此可以更轻松地为我提供帮助。该代码应可运行: (TestClass-主要) (如果需要,则为TestTableModel-AbstractTableModel(您需要它来执行代码!) 使用此短代码,如果更改

  • 我有一个名为“产品类型”的WooCommerce产品类别,我试图列出该类别下的所有类别,但不是这些类别的子类别。例如,我有: 产品类型 碳化物米尔斯 钓鱼工具 儿童类别 我希望它列出“电石磨坊”和“打捞工具”,但不是“儿童类别”。 这是我的代码: 但它仍然返回“儿童类别”。我不知道为什么将深度限制为“1”并将“include_children”设置为“false”不能解决这个问题。