【问题标题】:Mongoose push end edit猫鼬推端编辑
【发布时间】:2016-02-18 10:21:08
【问题描述】:

我在一次操作中更新字段并在同一文档上推送对象时遇到问题。 这是我的简单架构看起来像

var Schema = new schema({
    shopName: String,
    address: String
    products: [productSchema]
}) 

var productSchema = new schema({
    productName: String,
    ingredients: String,
    item: {
        qty: {type: Number, default: 0},
        carted: [
            {
                cartId: String, 
                timestamp: {type: Date, default: Date.now}
            }
        ]
    }
})

插图是当我为产品添加购物车时,我将通过数量订单减去产品数量,并将购物车信息推送到“carted”数组字段。

我发现"$inc": {"products.$.item.qty": -req.body.orderQty} 可以减去数量,但它只能在findOneAndUpdate 查询上运行。

那么,有没有一种有效的方法来处理这种情况?

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    好的,刚刚试了一下,解决了我的问题

    productModel.update({'products._id' : productID}, 
                        {
                            "$inc": {"products.$.item.qty": -req.body.cartQty}, 
                            "$push": {"products.$.item.carted": {cartId: req.body.cartId, qty: req.body.cartQty}}
                        },function(err, docs){
                            if (err){
                                console.log(err)
                            }else{
                                console.log(docs)
                            }
                        })
    

    【讨论】:

      猜你喜欢
      • 2015-06-26
      • 2019-10-13
      • 2014-01-29
      • 2019-10-26
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      相关资源
      最近更新 更多