问题模块 | 框架类型 | 问题类型 | 终端类型 | AppID | 基础库版本 |
---|---|---|---|---|---|
云开发 | 小程序 | 需求 | 客户端 | wx59e74c021081f517 | 2.2.5 |
- 需求的场景描述(希望解决的问题)
我需要生成一个交易订单号,由日期+序列号组成(如201907120000000001)序列号来源seq_orderid.orderid
我在云平台上建立一个collection:'seq_orderid'。
执行:
db.collection('seq_orderid').doc(_id).update({data:{
orderid:command.inc(1)
});
后需要读取并返回最近更新的orderid,必须在一个原子操作内(不能被下一个update请求修改了)。
附:并发环境里,如果update后使用db.collection('seq_orderid').doc(_id).get(),不能保证获取到的orderid就是
command.inc(1) 后的。
- 希望提供的能力
提供锁机制(update和get在一个事务内),或者可以在update后随即获取更新后的值,而不是更新了多少记录。