2017-04-09 206 views
1

我在用ArangoDB創建的每個文檔中都看到_rev,但我還沒有看到有關使用這些修訂來訪問文檔更改歷史記錄的任何信息。更具體地說,如何查詢特定文檔的修訂歷史以及時查看以前的版本甚至是特定的版本?如何在ArangoDB中查詢修訂歷史記錄?

回答

2

我的理解是,修訂版(_rev)屬性就在那裏作爲標記,因此您可以知道字段何時更新。您不能直接更改它,但每次在集合中的文檔UPDATE時,_rev值都會更新。

要存儲歷史值,您需要實施一個過程,以便在更新文檔時對其舊值進行歸檔。

_rev屬性在掃描文檔並查看是否有值發生更改時非常有用。您可以將_rev屬性與您期望看到的屬性進行比較,而不必深入比較文檔和您期望看到的內容。如果數據庫返回的值與您檢查的值不同,則您的代碼可以響應文檔更改,但是這是必需的。

請記住,您可以訪問舊版本,當你執行一個UPDATEUPSERT命令(the doco)的文件,併爲你願意,你可以選擇返回OLD文檔內容推下到存檔位置,或過程。更新後的文檔將收到新的_rev值。

在返回UPDATEUPSERT命令後,OLD值不會持續存在,因此您必須立即將其歸檔,否則較舊的文檔將丟失。