2017-04-09 75 views
1

我在用ArangoDB创建的每个文档中都看到_rev,但我还没有看到有关使用这些修订来访问文档更改历史记录的任何信息。更具体地说,如何查询特定文档的修订历史以及时查看以前的版本甚至是特定的版本?如何在ArangoDB中查询修订历史记录?

回答

2

我的理解是,修订版(_rev)属性就在那里作为标记,因此您可以知道字段何时更新。您不能直接更改它,但每次在集合中的文档UPDATE时,_rev值都会更新。

要存储历史值,您需要实施一个过程,以便在更新文档时对其旧值进行归档。

_rev属性在扫描文档并查看是否有值发生更改时非常有用。您可以将_rev属性与您期望看到的属性进行比较,而不必深入比较文档和您期望看到的内容。如果数据库返回的值与您检查的值不同,则您的代码可以响应文档更改,但是这是必需的。

请记住,您可以访问旧版本,当你执行一个UPDATEUPSERT命令(the doco)的文件,并为你愿意,你可以选择返回OLD文档内容推下到存档位置,或过程。更新后的文档将收到新的_rev值。

在返回UPDATEUPSERT命令后,OLD值不会持续存在,因此您必须立即将其归档,否则较旧的文档将丢失。