【问题标题】:arangodb traverse tree including edgesarangodb 遍历树,包括边
【发布时间】:2014-11-10 20:19:33
【问题描述】:

在我的 AQL 中使用“GRAPH_TRAVERSAL_TREE”仅返回顶点,是否可以将边缘文档与顶点一起返回。示例:

FOR item in GRAPH_TRAVERSAL_TREE('graph','_id','outbound','items')
  Return item

返回类似:

[
  {vertex},
  items:[
   {vertex, items:[]},
   {vertex, items:[]},
  ]
]

我希望将边缘信息包含在结果中,如下所示

[
  {vertex},
  items:[
   {edge:{edge}, vertex:{vertex}, items:[]},
   {edge:{edge}, vertex:{vertex}, items:[]},
  ]
]

使用没有图形函数的 AQL 我有这个:

for item in items filter item._id == 'items/212612934312'
  return {'head': item, 'items': [(
    for edge in itemEdges filter edge._from == item._id
      for vertex in items filter vertex._id == edge._to
        return {'edge': edge, 'vertex': vertex}
)]}

但我确定应该有更好的方法?

【问题讨论】:

    标签: arangodb


    【解决方案1】:

    目前不支持此功能,如果您需要,您必须提出更改请求。 另一种方法可能是使用 GRAPH_SHORTEST_PATH 但如果这适合您的用例,我不是 100%:

    GRAPH_SHORTEST_PATH("graph", '_id', {}, {direction : "outbound"})

    【讨论】:

    • @z999 在哪里可以成功使用 GRAPH_SHORTEST_PATH?
    • 我需要花更多时间在 GRAPH_SHORTEST_PATH 上,看看如何在树结构中格式化结果。我也在考虑使用 GRAPH_NEIGHBORS。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多