如何在ArangoDB中比较两个相似的图,从而得出路径和顶点的差异?

如何在ArangoDB中比较两个相似的图,从而得出路径和顶点的差异?,arangodb,arangojs,arangodb-php,nosql,Arangodb,Arangojs,Arangodb Php,Nosql,我有两个图表,我想比较它们之间的差异。作为AQL查询的结果,我只需要它们之间的路径和顶点的差异。ArangoDb中是否有对此的查询。如果可能的话,请告诉我。提前感谢。首先,您将在子查询中执行这两个命令: LET queryA = (RETURN {myFirstGraphResult: true, a: true, b: true}) LET queryB = (RETURN {mySecondGraphResult: true, a: true, b: true}) RETURN queryA

我有两个图表,我想比较它们之间的差异。作为AQL查询的结果,我只需要它们之间的路径和顶点的差异。ArangoDb中是否有对此的查询。如果可能的话,请告诉我。提前感谢。

首先,您将在子查询中执行这两个命令:

LET queryA = (RETURN {myFirstGraphResult: true, a: true, b: true})
LET queryB = (RETURN {mySecondGraphResult: true, a: true, b: true})
RETURN queryA == queryB
用实际查询替换前两个
RETURN
s。您需要使舒尔的数据序列相同,因此,如果您有一个包含多条路径的阵列,请先对其进行排序

如果您想知道这两条路径之间的实际差异,

首先,您将在子查询中执行这两个命令:

LET queryA = (RETURN {myFirstGraphResult: true, a: true, b: true})
LET queryB = (RETURN {mySecondGraphResult: true, a: true, b: true})
RETURN queryA == queryB
用实际查询替换前两个
RETURN
s。您需要使舒尔的数据序列相同,因此,如果您有一个包含多条路径的阵列,请先对其进行排序

如果您想知道这两条路径之间的实际差异,

就像在这种情况下,它给我错误的结果,虽然模式是相同的

@多斯巴特

就像在这种情况下,它给我错误的结果,虽然模式是相同的


@dothebart

我尝试过这种方法,即使图形相同,结果也是假的。我尝试过这种方法,即使图形相同,结果也是假的。我在下面的答案中写了一个例子,请看一看。我尝试了这个方法,即使图形相同,结果也是错误的。我尝试了这个方法,即使图形相同,结果也是错误的。我在下面的答案中写了这个例子,请看一看。完全正确,它们是不同的。查看
graph1[0]。顶点[0]。\u-id
vs.
graph2[0]。顶点[0]。\u-id
-
ExampleCollection/a
vs.
ExampleCollection/184258199087
。如果只想比较
任务
,则应创建一个只返回它们而不是整个边缘的查询。尽管我的任务名称不同,但当我返回变量时,它在比较时显示为true。task@dothebart任何answer@dothebart,只是另一个观察,两个结构完全相同的图(A->B->C),但唯一的区别是每个节点的文档句柄不同。这两张图的比较结果仍然是错误的。据我所知,每个节点的文档句柄也在进行比较,句柄总是不同的。因此,核心图结构永远不会被比较为相等。文档的顺序和文档本身必须相等,才能得到
True
。您必须通过提取完整文档的可比较位并对其进行排序来确保这一点。否则,您将不得不使用a比较图形,或者使用FOXX服务比较AQL之外的图形,或者在应用程序中比较ArangoDB之外的图形。完全正确,它们是不同的。查看
graph1[0]。顶点[0]。\u-id
vs.
graph2[0]。顶点[0]。\u-id
-
ExampleCollection/a
vs.
ExampleCollection/184258199087
。如果只想比较
任务
,则应创建一个只返回它们而不是整个边缘的查询。尽管我的任务名称不同,但当我返回变量时,它在比较时显示为true。task@dothebart任何answer@dothebart,只是另一个观察,两个结构完全相同的图(A->B->C),但唯一的区别是每个节点的文档句柄不同。这两张图的比较结果仍然是错误的。据我所知,每个节点的文档句柄也在进行比较,句柄总是不同的。因此,核心图结构永远不会被比较为相等。文档的顺序和文档本身必须相等,才能得到
True
。您必须通过提取完整文档的可比较位并对其进行排序来确保这一点。否则,您将不得不在应用程序中使用a、使用FOXX服务在AQL之外或在ArangoDB之外比较图形。