如何在ArangoDB 3.2中查询OUT然后IN遍历?
问题描述:
我有以下图形结构。所有的顶点都在同一个集合中,并且所有的边都在同一个集合中。从一个特定的开始顶点(F)开始,我想返回所有的顶点,这些顶点是一次向外出发的结果,然后向内一次,这样我就结束了,在这个例子中,D和E. 如何在ArangoDB 3.2中查询OUT然后IN遍历?
答
在与它混合了一段时间之后,这就是我想出来的。似乎工作。发布此信息以防其他人搜索类似的问题。
FOR v IN 1..1 OUTBOUND "Vertex/F" edges
FOR vv IN 1..1 INBOUND v edges
FILTER vv._key != "F"
Collect uniqueKeys = vv._key
return uniqueKeys
对于一个小的8个顶点数据库来说,查询需要几乎一毫秒的时间,但我认为我不能做得更好。
是的,这是对的。记住你的查询可以访问v,e,p(而不仅仅是你使用的v),它可以让你从返回的路径而不是顶点执行查询。通过使用LAST(p.vertices)或FIRST(p.vertices),您可以更好地控制第二个查询的运行方式。但只有在需要的时候,你在那里做了什么才能完成1步。 –