查询ArangoDB general graph以查找具有2个以上起始顶点的公共邻居?

查询ArangoDB general graph以查找具有2个以上起始顶点的公共邻居?,graph,graph-algorithm,arangodb,Graph,Graph Algorithm,Arangodb,考虑以下示例图:   考虑到顶点A、B和C(创建者),如何计算它们的公共邻居?(所有3个参与的项目)对于两个顶点,我可以简单地使用图\u公共邻居(“myGraph”,A,B),但如果我想查询3个或更多呢预期结果:1和2 给定相同的顶点,如何使其返回没有其他连接的公共邻居?(创建者专门参与项目,不允许附加边)?预期结果:1,因为2的边来自D,而D不是起始顶点之一 您可以简单地传递相同的顶点集作为公共邻居的两个参数。然后以更好的格式重新打包结果,以便AQL计算交叉点: let res = ( l

考虑以下示例图:

  • 考虑到顶点
    A
    B
    C
    (创建者),如何计算它们的公共邻居?
    (所有3个参与的项目)

    对于两个顶点,我可以简单地使用
    图\u公共邻居(“myGraph”,A,B)
    ,但如果我想查询3个或更多呢

    预期结果:
    1
    2


  • 给定相同的顶点,如何使其返回没有其他连接的公共邻居?
    (创建者专门参与项目,不允许附加边)?

    预期结果:
    1
    ,因为2的边来自D,而D不是起始顶点之一


  • 您可以简单地传递相同的顶点集作为公共邻居的两个参数。然后以更好的格式重新打包结果,以便AQL计算交叉点:

    let res = (
      let nodes =  ["a/A","a/B","a/C"]
      for n in GRAPH_COMMON_NEIGHBORS("g",nodes , nodes) 
        for f in VALUES(n)
          return VALUES(f)
    )
    return CALL("intersection", res[0])