阅读后立即进行更新

时间:2016-07-18 20:58:57

标签: rethinkdb reql

假设我有一个应用程序的多个实例,使用如下所示的查询读取单行

r.db('main').
table('Proxy').
filter(r.row('Country').eq('es').and(r.row('Reserved').eq(false))).
min(r.row('LastRequestTimeMS'))

'Reserved'字段是bool 我想保证读取该值的同一实例执行更新以将'Reserved'值设置为true以防止其他实例读取它

有人可以指点我如何做出这种保证吗?

1 个答案:

答案 0 :(得分:1)

通常,您希望执行此类操作的方式是您要发出条件update,并查看返回的更改以获取读取。类似于document.update(function(row) { return r.branch(row('Reserved'), r.error('reserved'), {Reserved: true}); }, {returnChanges: true})