用于n个节点的最小公共祖先的AQL

问题描述 投票:0回答:1

我对arango图相对较新,我正在尝试为我的图问题找到解决方案。我的图看起来像这样:

enter image description here

我有多个起始节点,所有这些都应该连接到我不知道的末端节点中。我正在寻找一个AQL,以在我的图中找到这些连接端节点。是否可以使用arango找到这些节点?谁能帮我吗?

graph arangodb
1个回答
0
投票
LET startingNodes = ['nid1', 'nid2', ...]

LET vArrs = (
  FOR snode in startingNodes
  RETURN (
    FOR v, e, p in 0..@maxDepth
    OUTBOUND snode
    GRAPH @graphName //or list of edge collections
    OPTIONS {uniqueVertices: 'path'}
    RETURN {id: v._id, dist: length(p)}
  )
)

LET vidArrs = (
  FOR vArr in vArrs
  RETURN (
   FOR v in vArr RETURN v.id
  ) 
)

LET vCommon = APPLY('INTERSECTION', vidArrs)

FOR v in FLATTEN(vArrs)
  FILTER v.id in vCommon
  SORT v.dist ASC
  LIMIT 1
RETURN v.id

© www.soinside.com 2019 - 2024. All rights reserved.