我在每个在_rev中创建的文档中都看到了ArangoDB,但是我还没有看到任何关于使用这些修订来访问文档的更改历史的信息。更具体地说,如何在修订历史记录中查询特定的文档,以便及时查看以前的版本,甚至是特定的版本?
发布于 2017-04-10 03:07:51
我的理解是,修订(_rev)属性只是作为标记存在,这样您就可以知道字段何时更新了。您不能直接更改它,但是每次在集合中UPDATE文档时,都会更新_rev值。
要存储历史值,您需要实现一个过程,以便在文档的旧值更新时对其进行归档。
在扫描文档和查看是否更改任何值时,_rev属性可能非常有用。与其对文档和您希望看到的内容进行深度比较,您还可以将_rev属性与您希望看到的进行比较。如果数据库返回一个与您正在检查的值不同的_rev值,那么您的代码可以响应文档的更改(无论如何是必需的)。
请记住,在执行UPDATE或UPSERT命令(多科)时,您可以访问文档的旧版本,并且可以选择返回OLD文档内容以推送到存档位置,或者根据您的意愿进行处理。更新后的文档将收到一个新的_rev值。
OLD值在返回UPDATE或UPSERT命令后不会持久化,因此您必须立即将其存档,否则旧文档将丢失。
https://stackoverflow.com/questions/43312662
复制相似问题