我有一个包含两个顶点集合的图:景点(绿色)和酒店(橙子)。
我想查询景点和酒店的特定组合,例如下面给出的组合:
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
上面的查询给出了所有包含两个、三个或四个节点的组合,如上所示。如何才能只得到圆圈内显示的结果(恰好是四个节点的组合)?
任何帮助都非常感谢。
1条答案
按热度按时间yvgpqqbh1#
你的意思是你们的结果是重复的吗?如果是,则可以在返回值中使用
DISTINCT
。否则,请尝试BFS唯一顶点和唯一边:https://docs.arangodb.com/3.11/aql/graphs/traversals/