Mongodb 购物车 保存修改问题

可以利用Mongodb的富文档来保存用户购物车信息,

userId: {
   cart: [
       {
           productId: 111,
           price: 1.00,
           number: 5
       },
       {},
       ...
   ]
}

那么问题来了,如果我要修改商品111的单价,那么需要遍历Mongodb来把所有用户购物车中商品111的价格都进行修改嘛?有其他好的方法嘛?求指教。

阅读 4k
3 个回答

假设每个购物车中只有一个商品111。按照你上面的数据结构,可以用:

db.cart.updateMany({"userId.cart.productId": 111}, {$set: {"userId.cart.$.price": newPrice}});

更合理的做法是像上面说的,不要存价格。对电商来说价格是敏感的数据,变动频繁,冗余下来弊大于利。

最好的办法,MongoDB中只存productId和数量,不要存价格,在加载购物车时现查最新促销信息

有索引 你也是搞笑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进