云数据库inc、mul等原子操作过程中能否添加where条件去限制?
需求:数据库有些资源需要进行自增自减进行抢占。 目的:同时还需要考虑资源是否为0,不能自减到负数。 目前我看到有人提供这样的代码: [代码]db.collection([代码][代码]'activity'[代码][代码]).where({[代码] [代码] [代码][代码]activity_id: _.eq([代码][代码]"test1"[代码][代码]),[代码] [代码] [代码][代码]goodsLeft: _.gt(0)[代码] [代码] [代码][代码]}).update({[代码] [代码] [代码][代码]data: {[代码] [代码] [代码][代码]goodsLeft: _.inc(-1)[代码][代码]//每次把剩余商品数减一[代码] [代码] [代码][代码]}[代码] [代码] [代码][代码]}).then([代码][代码]function[代码][代码](d){[代码] [代码] [代码][代码]if[代码][代码](d.stats.updated>0) {[代码][代码]/*抢购成功*/[代码] [代码]}[代码] [代码] [代码][代码]else[代码] [代码]{[代码][代码]/*抢购失败*/[代码] [代码]}[代码] [代码] [代码][代码]})[代码] 在update之前进行了where帮忙判断库存情况。 疑问:所以我想请教,原子操作是否可以添加where条件判断。同时延申来讲,如果我的where不指定id,是一个批量覆盖的条件,那岂不是会对大量的记录进行原子操作?