如何在图形上获得孤立的顶点

时间:2017-12-12 09:22:59

标签: graph-algorithm arangodb vertices

如何在图形上获取孤立的顶点。我是arangodb的新手。 我想得到所有孤立的顶点并删除它们,以便我更容易分析数据。

1 个答案:

答案 0 :(得分:1)

使用ArangoDB 3.x,以下AQL查询将计算@nodes中相对于特定边集合@edges的隔离节点:

FOR v IN @nodes
 LET degree = (FOR v1 IN 1..1 ANY v @edges 
               COLLECT WITH COUNT INTO c RETURN c)[0]
 FILTER degree==0
 COLLECT WITH COUNT into c
 RETURN c

如果可能有多个相关的Edge集合,则必须明确指定它们,除非您想依赖命名图形中的现有规范。在这种情况下,您可以将上面的@edges替换为GRAPH mygraph,其中mygraph是相关命名图的名称。

一旦您确认了这是您想要的,您就可以修改上述内容以删除顶点。

上述方法(基于计算边缘)相当耗费资源,但我不知道更好的替代方法,因为即使在JavaScript中,您也可能必须使用inEdges()和outEdges()。可能以顶点为中心的指数可能有所帮助。

对于优先考虑边缘的方法,请参阅retrieve vertices with no linked edge in arangodb