由于云开发事务不支持where,但是也无操作中可能会有并发的问题,能不能在一次事务中对一个记录进行多次操作?
比如某条记录
{
msg:"这是一句话", // msg可以是任意字符串
status:0 // status状态只能是 0 和 1
}
需要更新 msg和status, 如果此时同时更新两个字段 肯定会返回 stats.updated:1
无法保证更新之前内容没有被别人修改过,考虑在事务中对这条记录分两次更新,不知道这样行不行?
let changeDriver = await transaction.collection(table).doc(id).update({
data: {
status: 1
},
});
let changeOrder = await transaction.collection(table).doc(id).update({
data: {
msg: '这是一段修改后的内容'
},
});