如何在到期后更新文档?

时间:2014-09-04 22:14:51

标签: couchbase

最初文件是State-A。它随着状态B的更新而到期。到期后,文档将自动更新为State-A。如果没有,实现它的解决方案是什么?

1 个答案:

答案 0 :(得分:1)

更新文档后,先前的数据丢失。所以你不能只恢复到以前的状态。你可以做的是手动实现版本。

例如,您的应用程序包含带有键foo的文档,然后您可以在幕后执行以下操作:

设置

my_set("foo", "bar")

转换为

v = incr("foo:ver")
set("foo:" + v, "bar")

并获得

my_get("foo")

转换为

v = get("foo:ver")
loop do
  doc = get("foo:" + v)
  v -= 1
  break if v < 0 || doc.present?
end

我这个伪代码我已经展示了基本的想法,当然它可能会被优化,比如在成功获得后更新计数器。

在此设置中,my_set()可以接受到期时间,并且所有先前的值都将被安全存储。