查询 ArangoDB general-graph 是否有超过 2 个起始顶点的公共邻居?

Query ArangoDB general-graph for common neighbors with more than 2 start vertices?

考虑以下示例图:

  1. 给定顶点ABC(创建者),如何找出它们的共同邻居?
    (projects all 3 participated in)

    对于两个顶点,我可以简单地使用GRAPH_COMMON_NEIGHBORS("myGraph", A, B),但是如果我想查询3个或更多怎么办?

    预期结果:12

  2. 给定相同的顶点,如何使它return没有其他联系的共同邻居?
    (创作者独家参与一个项目,不允许添加边) ?

    预期结果:1,因为 2 有一条边来自 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])