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

qojgxg4l  于 2023-09-28  发布在  Go
关注(0)|答案(1)|浏览(136)

我有一个包含两个顶点集合的图:景点(绿色)和酒店(橙子)。
我想查询景点和酒店的特定组合,例如下面给出的组合:

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

上面的查询给出了所有包含两个、三个或四个节点的组合,如上所示。如何才能只得到圆圈内显示的结果(恰好是四个节点的组合)?
任何帮助都非常感谢。

yvgpqqbh

yvgpqqbh1#

你的意思是你们的结果是重复的吗?如果是,则可以在返回值中使用DISTINCT。否则,请尝试BFS唯一顶点和唯一边:
https://docs.arangodb.com/3.11/aql/graphs/traversals/

相关问题