【发布时间】:2021-09-30 15:21:07
【问题描述】:
我想通过检查产品的数量从购物车中删除产品。它的数量应该减1,直到它达到零,然后,它应该从Cart的产品数组中拉出。
这是我的逻辑:(我想在单个查询中执行拉取和递减操作。但我被困在如何通过 MongoDb 中的一个简单条件一起执行这两个操作)
const cart = await Cart.findOneAndUpdate({"products.productId": req.body.productId}, {$inc: {"products.$.quantity": -1}}, {new: true})
await Cart.update({"products.productId": req.body.productId}, {$pull: {quantity: 0}})
这里是澄清的模型:
import mongoose from 'mongoose';
const cartSchema = new mongoose.Schema({
userId: {
type: String,
required: true,
},
products: [
{
productId: {
type: String,
},
quantity: {
type: Number,
default: 1
}
}
]
}, {timestamps: true});
const Cart = new mongoose.model('Cart', cartSchema);
export default Cart;
谢谢:)
【问题讨论】:
标签: mongodb