我有一个购物车路线,我想添加相同尺寸的商品数量。
请看一下。
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.quantity
将cartItem.products.quantity
(来自db的数量)添加到$add
(来自请求正文的数量)来更新数量。这里的问题是它在$add
所在的行上给我一个错误产品未定义。另外,我不知道这是否是正确的实施方案。请赐教。非常感谢你。