如何在Arango DB图中查询特定的节点组合

时间:2018-04-18 11:07:50

标签: graph-databases arangodb aql

我有一个包含两个顶点集合的图形:吸引力(绿色)和酒店(橙色)。

我想查询景点和酒店的特定组合,例如下面给出的组合:

Attraction (start vertex) ---> Attraction ---> Hotel
                                   |
                                   |
                                   v
                               Attraction

图表已指向边缘,如图所示。

我现在(下面)的查询给出了上述组合的任何部分,而不是与上面完全连接的四个节点。

FOR document IN Attraction FOR vertex, edge, path IN 1..2 OUTBOUND document GRAPH "LondonAttractionDB" 
FILTER path.vertices[0].entityTypes[0] == "Attraction" 
FILTER path.vertices[1].entityTypes[0] == "Attraction" 
FILTER path.vertices[2].entityTypes[0] == "Hotel" OR path.vertices[2].entityTypes[0] == "Attraction" 
RETURN path

enter image description here

以上查询提供了包含两个,三个或四个节点的所有组合,如上所示。如何才能获得圈内显示的结果(正好四个节点的组合)?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您是说结果重复? 如果是,则可以使用与众不同的返回值。 否则,请尝试BFS的唯一顶点和唯一边

https://docs.arangodb.com/3.3/AQL/Graphs/Traversals.html