2017-10-21 113 views
2

我有以下图形结构。所有的顶点都在同一个集合中,并且所有的边都在同一个集合中。从一个特定的开始顶点(F)开始,我想返回所有的顶点,这些顶点是一次向外出发的结果,然后向内一次,这样我就结束了,在这个例子中,D和E. enter image description here如何在ArangoDB 3.2中查询OUT然后IN遍历?

回答

1

在与它混合了一段时间之后,这就是我想出来的。似乎工作。发布此信息以防其他人搜索类似的问题。

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个顶点数据库来说,查询需要几乎一毫秒的时间,但我认为我不能做得更好。

+1

是的,这是对的。记住你的查询可以访问v,e,p(而不仅仅是你使用的v),它可以让你从返回的路径而不是顶点执行查询。通过使用LAST(p.vertices)或FIRST(p.vertices),您可以更好地控制第二个查询的运行方式。但只有在需要的时候,你在那里做了什么才能完成1步。 –