在mongoose model.findOneAndUpdate中添加值

时间:2017-01-04 08:41:30

标签: mongodb express mongoose

我有一个购物车路线,我想添加相同尺寸的商品数量。

请看一下。

Cart.findOne({userPurchased: cartItem.userPurchased}, function(err, item){
    console.log(item);
    if(err) throw err;

    if(item){
        if(item.products.product === cartItem.products.product && item.products.size === cartItem.products.size){
            Cart.findOneAndUpdate({userPurchased: cartItem.userPurchased}, {$add: [products.quantity, cartItem.products.quantity]}, {new: true}, function(err, result){
                res.json(result);
            })
        } else {
            Cart.findOneAndUpdate({userPurchased: cartItem.userPurchased}, {$push: {products: cartItem.products}}, {new: true}, function(err, updated){
                if(err) throw err;

                res.json(updated);
            })
        }
    } else {
        Cart.create(cartItem, function(err, result){

            res.json(result);
        });
    }
});

首先,我试图找出是否有人已经在数据库上有记录。如果找到一个,我将检查我添加的项目是否已由用户添加并且大小是否相同。如果它是相同的,那么我将通过在mongoose中使用products.quantitycartItem.products.quantity(来自db的数量)添加到$add(来自请求正文的数量)来更新数量。这里的问题是它在$add所在的行上给我一个错误产品未定义。另外,我不知道这是否是正确的实施方案。请赐教。非常感谢你。

0 个答案:

没有答案