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

问题描述 投票:0回答:1

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

我想查询某个景点和酒店的组合,如下所示:

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

以上查询给出了所有包含两个、三个或四个节点的组合,如上所示。我怎样才能只得到圆圈内显示的结果(正好四个节点的组合)?

非常感谢任何帮助。

graph-databases arangodb aql
1个回答
0
投票

您的意思是结果有重复吗? 如果是,那么您可以在返回值中使用

DISTINCT
。 否则,尝试 BFS 唯一顶点和唯一边:

https://docs.arangodb.com/3.11/aql/graphs/traversals/

© www.soinside.com 2019 - 2024. All rights reserved.