如何查询 ArangoDB 中的修订历史记录?

dar*_*rog 2 nosql graph-databases arangodb aql

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

Dav*_*mas 5

我的理解是,修订 ( _rev) 属性只是作为标记,以便您可以知道字段何时更新。您无法直接更改它,但每次您UPDATE更改集合中的文档时,该_rev值都会更新。

要存储历史值,您需要实施一个流程来在文档更新时归档旧值。

当扫描文档并查看是否有任何值发生更改时,该_rev属性非常有用。您不必对文档和您期望看到的内容进行深入比较,只需将属性_rev与您期望看到的内容进行比较即可。如果数据库返回的_rev值与您检查的值不同,那么您的代码可以响应文档更改,无论需要如何。

UPDATE请记住,当您执行orUPSERT命令(doco )时,您可以访问文档的旧版本,并且您可以选择返回OLD文档内容以推送到存档位置,或根据需要进行处理。更新后的文档将收到新的_rev在更新后收到新值。

该值在or命令OLD返回后不会保留,因此您必须立即将其存档,否则旧文档将丢失。UPDATEUPSERT