【问题标题】:How To Use Mongoose $pull Operator For To Remove Array Of Objects如何使用 Mongoose $pull 运算符来删除对象数组
【发布时间】:2021-08-11 09:25:56
【问题描述】:

我正在开发一个具有购物车页面和卖家面板页面的电子商务应用程序。卖家可以从面板管理他们的所有产品。当卖家在这里删除产品时,我想做的是:
1.删除产品
2.删除产品的所有评论
3.从所有愿望清单中删除该产品
4.从所有购物车中删除该产品。

现在我可以做 1,2,3 但不能做第 4 步。


我的购物车架构:
const cartSchema = new mongoose.Schema(
  {
    items: [
      {
        product: { type: mongoose.Schema.Types.ObjectId, ref: "Product" },
        seller: { type: mongoose.Schema.Types.ObjectId, ref: "Shop" },
        color: String,
        quantity: Number,
        stripePriceId: String,
        stripeProductId: String,
        selected: Boolean,
      },
    ],
    user: {
      type: mongoose.Schema.Types.ObjectId,
      ref: "User",
    },
  },
  { timestamps: true }
);

卖家删除产品后运行的代码:

const Cart = require("../models/shoppingCart");
await Cart.updateMany({ $pull: { "items.product": req.params.id } });

上面的代码给出了一个错误,说:

Cannot use the part (product) of (items.product) to traverse the element

然后我尝试了这段代码,也没有工作,但没有返回任何错误:

const Cart = require("../models/shoppingCart");
await Cart.updateMany({ $pull: { items: { product: req.params.id } } });

这些代码都没有按预期工作。我想删除与已删除产品关联的所有购物车项目。我该怎么做?

【问题讨论】:

    标签: javascript node.js mongodb mongoose mongodb-query


    【解决方案1】:

    我解决了这个问题。这是因为前端。错误的状态管理导致了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-12
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 2019-01-15
      • 2018-06-20
      • 2021-10-07
      相关资源
      最近更新 更多