ArangoDB中的节点散列?

kiz8lqtg  于 2022-12-09  发布在  Go
关注(0)|答案(1)|浏览(156)

我正在使用ArangoDB进行图形版本控制,并希望找到一种更快的方法来评估节点在两个不同的集合中是否相同。除了在我写节点之前对每个节点进行哈希之外,ArangoDB是否有任何机制可以让我读取节点的哈希?我通常使用Python-Arango访问数据库。
如果我自己散列它是唯一可行的选择,那么对于Graph-DB中的这些类型的文档,什么是合理的散列函数呢?_id不应该包括在内,因为两个不同集合中的同一节点仍然不同。_rev实际上并不重要,而且我不确定是否实际上需要_key,因为节点是由它以任何方式标识的。

xqkwcwgp

xqkwcwgp1#

你需要做你自己的哈希算法来做这件事。
问题在于,构建哈希的文档的唯一值是特定于用户的,因此您需要在外部构建该哈希值,并将其与每个文档一起保存。
要确认唯一性,可以通过Foxx Microservice或在AQL查询中进行,如果发现多个节点具有重复的哈希值,则会抛出错误。
如果您希望在插入操作中强制实现唯一性,那么您需要在外部构建该逻辑。
然后,您可以选择信任您的唯一性,或者设置一个Foxx微服务,该服务将搜索范围内的集合,以确保没有其他文档具有相同的哈希值。
查询许多其他集合的性能会很差,因此另一种方法是设置一个接受文档更新的Foxx队列,然后让Foxx服务执行队列中的INSERT/UPDATE命令。这样就不会降低客户端应用程序的速度,数据最终会在Arango中尽可能快地更新。

相关问题