在 ArangoDB 中,最短路径可以通过使用 AQL(ArangoDB 查询语言)中的 TRAVERSAL
函数来计算。TRAVERSAL
函数允许您沿着图中的边遍历节点,直到满足某个条件为止。为了计算两个节点之间的最短路径,您可以使用 TRAVERSAL
函数并指定相应的边集合和遍历选项。
以下是一个使用 TRAVERSAL
函数计算两个节点之间最短路径的示例查询:
FOR v, e IN OUTBOUND 'collection_name' 'start_vertex_id' OPTIONS {bfs: true, uniqueVertices: 'path'} RETURN [v._key, e._key]
在这个示例中,collection_name
是您要查询的边的集合名称,start_vertex_id
是起始顶点的 ID。OPTIONS
对象中的 bfs
参数设置为 true
以启用广度优先搜索(BFS),这是计算最短路径的常用算法。uniqueVertices
参数设置为 'path'
以确保返回的路径中的顶点是不重复的。
查询结果将包含一个顶点和边键的数组,这些顶点和边键表示了从起始顶点到目标顶点的最短路径。如果您需要计算两个节点之间的最短路径长度,可以在查询结果中添加一个额外的字段来存储路径长度。