当前位置:  开发笔记 > 编程语言 > 正文

找到两个顶点之间的所有路径

如何解决《找到两个顶点之间的所有路径》经验,为你挑选了1个好方法。

如何在arangodb 3.1中获得深度为n的两个顶点之间的所有路径?我在AQL文档中找到的唯一可能性是最短路径.但我想得到所有的路径,而不仅仅是最短路径.

谢谢你的帮助!



1> mchacki..:

为了获得n具有已知_id值的顶点之间的所有路径,您可以使用以下AQL语句:

FOR target, unused, path IN @depth ANY @source edgeCollection
  FILTER target._id == @target
  RETURN path

让我简要解释一下这些部分:

FOR target, unused, path=>定义返回值:target=您搜索的顶点,unused=指向它的最后一个边,path=格式的完整路径:{edges: [edge1, edge2, ..], vertices: [vertex1, vertex2, ...]}

IN @depth=>定义精确的深度n不短,不再返回路径.也@min..@max可以返回长度为min到max的所有路径.

ANY=>搜索方向,这将忽略边缘的方向,也可以是INBOUNDOUTBOUND

@source =>目标顶点id

edgeCollection =>边缘集合的名称,也可以 GRAPH "graphName"

FILTER target._id == @target =>这里我们验证我们找到了正确的顶点.

RETURN path =>返回路径;)

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有