簡體   English   中英

ArangoDB 中的節點哈希?

[英]Node Hash in ArangoDB?

我正在使用 ArangoDB 進行圖形版本控制,並且正在尋找一種更快的方法來評估兩個不同集合中的節點是否相同。 除了在我寫之前對每個節點進行散列 - ArangoDB 是否有任何機制可以讓我讀取節點的散列? 我通常使用 Python-Arango 訪問數據庫。

如果我自己散列是唯一可行的選擇,那么對於 Graph-DB 中的這些類型的文檔,什么是合理的散列函數? _id不應包含在內,因為兩個不同集合中的同一節點仍然會有所不同。 _rev並不重要,我不確定_key是否真的需要,因為節點是由它以任何方式標識的。

您需要制作自己的哈希算法來執行此操作。

問題是構建散列的文檔的唯一值是用戶特定的,因此您需要在外部構建該散列值並將其與每個文檔一起保存。

要確認唯一性,您可以通過 Foxx 微服務或在您的 AQL 查詢中執行此操作,如果發現多個節點具有重復的哈希值,則會引發錯誤。

如果要對插入強制執行唯一性,則需要在外部構建該邏輯。

然后,您可以選擇信任您的唯一性或設置 Foxx 微服務,該微服務將搜索范圍內的集合,以確保沒有其他文檔具有相同的哈希值。

查詢許多其他集合的性能會很差,因此另一種方法是設置一個接受文檔更新的 Foxx 隊列,然后讓 Foxx 服務從隊列中執行 INSERT/UPDATE 命令。 這樣您就不會減慢客戶端應用程序的速度,並且數據最終會盡快在 Arango 中更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM