【问题标题】:AQL for the smallest common ancestor for n nodesn 个节点的最小共同祖先的 AQL
【发布时间】:2019-09-21 08:18:42
【问题描述】:

我对 arango 图比较陌生,我正在尝试为我的图问题找到解决方案。 我的图表如下所示:

我有多个起始节点,它们都应该连接到我不知道的结束节点。 我正在搜索 AQL 以在我的图中找到这些连接端节点。 是否可以使用 arango 找到这些节点?谁能帮帮我?

【问题讨论】:

    标签: graph arangodb


    【解决方案1】:
    LET startingNodes = ['nid1', 'nid2', ...] //or @nids
    
    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.vertices)}
      )
    )
    
    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
    
    

    【讨论】:

    • 我没有在真实的图表上运行这个,因为我没有你描述的结构的合理大小的示例图表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2014-12-11
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多