【发布时间】:2016-09-01 15:53:28
【问题描述】:
我正在使用 ArangoDB 3.0,我想创建一个 AQL 查询来获取从 A 到 B 的最短路径,深度 = 3,过滤某些边缘属性。
查询的“ArangoDB 2.0”版本如下:
FOR e IN GRAPH_SHORTEST_PATH('CityGraph', 'city/rome', 'city/turin',
{
edgeExamples: [{filterProperty: 'FIRST'}, {filterProperty: 'SECOND' }]}
)
我阅读了有关 arangoDB 3.0 (https://docs.arangodb.com/3.0/AQL/Graphs/ShortestPath.html) 的文档,上面写着:
条件最短路径
SHORTEST_PATH 计算只会找到无条件的最短路径 小路。使用此构造,无法定义条件 比如:“找到所有边都是 X 类型的最短路径”。 如果你 想要做到这一点,使用普通的遍历而不是选项 {bfs: true} 与 LIMIT 1 结合使用。
那么,谁能告诉我我可以执行哪种类型的 AQL 查询? 根据建议,我这样写:
FOR n, e IN 1..3 ANY 'city/rome' GRAPH 'CityGraph' OPTIONS {bfs: 真的} FILTER e.filterProperty IN ['FIRST', 'SECOND'] 限制 1 返回 {n, e}
但是它只返回第一级图的深度,而不是n的深度。
提前谢谢你。
最好的问候,
丹尼尔
【问题讨论】: