似乎每次增加2的金额

时间:2017-01-19 17:51:40

标签: java mongodb velocity spark-java

所以我正在为自己制作一个项目,我正在学习使用java spark velocity和mongodb创建一个小型网上商店,现在我正处于可以添加和删除购物车中的商品的地步,但出于某种原因,如果我添加2个相同的标题(在这种情况下为sku)它应该只获得金额+1并且可以任意告诉我哪里出错了?

for (int i = 0 ; i < list.size(); i++){
        if (Objects.equals(list.get(i).getSku(), sku)){
            Integer newamount = list.get(i).getAmount() + 1;
            newList.append("sku", list.get(i).getSku());
            newList.append("price", list.get(i).getPrice());
            newList.append("amount", newamount);
            DBObject dbObject = new BasicDBObject("shopping_cart", newList);
            coll.update(new BasicDBObject("email", email), new BasicDBObject("$push", dbObject));

1 个答案:

答案 0 :(得分:0)

您正在逐步浏览整个列表数组,并找到两次sku。

相反,您可能希望在第一次找到sku时突破FOR循环。所以,休息一下你的IF支架;言。

HTH, 吉姆