我有兴趣比较两个存储在不同数据库中的具有相同“ _id”(相同的集合名称和“ _keys”)的文档。
我的用例是一个自定义的“地图/布局引擎”,“主要”由外部地理数据系统的“自动导入/转换作业”提供。
到目前为止,一切正常。
但是在某些情况下,有必要手动进行调整,例如的一些对象的“ x / y”坐标,以使其更可用。通过再次运行导入作业(例如以获取最新数据)所有手动调整都会丢失,因为它们只会被“自动”数据。
因此,我想到了由几个相同的系统组成的系统设置。结构化的ArangoDB数据库,用于数据库的不同“阶段”数据生命周期,例如:
相应的(简化的)生命周期将是这种方式:
因此,本主题全都涉及步骤2在“生产”和“登台”数据值之间的“比较阶段”。
在SQL中,我用sth表示。像这样:
SELECT
x, y
FROM databaseA.layout AS layoutA
JOIN databaseB.layout ON (layoutA.id = layoutB.id) AS layoutB
WHERE
...
感谢您关于如何使用AQL查询或FOXX服务在ArangoDB中解决此问题的任何提示!
假设地,如果您拥有版本控制图数据库,则可以执行以下操作:
R0
。N
,从而引起N
的新修订,例如R1
。 虽然您的先前版本R0
不会丢失。最后,当您需要向最终用户显示此数据时,请使用自定义应用程序逻辑将所需的多个先前版本与当前版本进行合并,进行n-way
合并而不是2-way
合并。
如果您认为这可能是一个潜在的解决方案,则可以看看CivicGraph,它是基于ArangoDB的版本控制层。
[注:我是CivicGraph的创建者,这个答案可以作为产品的促销,但我也相信它可以帮助解决您的问题。