Arangodb查询受深度

时间:2016-11-29 13:56:11

标签: arangodb graph-traversal

例如,我想从dave开始确切地查询这个图,深度为2 enter image description here

现在,如果我想将节点连接到Dave,深度为2,我会使用

For v,c in 0..2 
ANY "persons/dave" knows 
OPTIONS {uniqueVertices: "global",bfs: true }
return v

这将返回:

  • Dave-Bob-Charlie-Eve-Alice(图中的每个人)

但我不知道如何查询返回正确的关系集:

  • Eve to Alice not missing
  • 如果图表较大,则Alice-to-someoneelse会 在结果中

我目前的解决方案不会让Eve-to-Alice

For v,c in 1..2 
ANY "persons/dave" knows 
OPTIONS {uniqueEdges: "global",bfs: true }
return c

1 个答案:

答案 0 :(得分:0)

在这种情况下,如果你从Dave开始,Eve-to-Alice是第三级遍历。您可以编写查询:

for v, e, p in 1..3 ANY "persons/dave" knows options {uniqueEdges: "path",bfs: true}
    return {vertex: v, edge: e, path: p}

这将为您提供每一个优势,包括Eve和Alice之间的优势。这是否回答了你的问题?

如果您需要将此限制仅限于二级节点之间的路径,则需要创建一个过滤器。