如何计算每一个结点的出入度,根据出入度给结点设置类型
发布于 6 年前 作者 wuchengbin 7393 次浏览 来自 问答

1、遍历数据库中的所有结点 2、根据结点入度和出度设置结点类型

如结点入度>1 出度>1 set node=Type1 怎么计算入度和出度?

8 回复

match(n:RainStormStateNode)-[:SRelationship]->(m:RainStormStateNode) with count(n) as InDgree,m match(m)-[:SRelationship]->(p:RainStormStateNode) with InDgree,count(p) as OutDgree,m where InDgree>1 and OutDgree>1 set m:MergeSplitNode; 不知是否有更简洁的方法

设置一个属性可以吗,根据关系个数给每个节点设置一个typeCount属性 不知道这种方法符不符合你的业务, 根据度数设置Label,如果关系增加或者减少,Label也要对应改变,这样是不是有点麻烦

@wkq278276130 现在是想 数据放到数据库里面了以后,我通过语句来更新一些数据的标签。但是通过上面写的那种方法,一个序列开头和结尾的节点,开头节点只有出度没有入度,结尾节点只有入度没有出度,都是没办法判断出来的。或者有没有别的办法单独判断节点是开头还是结尾的点

match(n:RainStormStateNode) with (n)-[:SRelationship]->() with count(n) as InDgree,n with (n)<-[:SRelationship]-() with InDgree,count§ as OutDgree,n case when InDgree>1 and OutDgree>1 then set n:Node1 when InDgree=0 and OutDgree>1 then set n:Node2 when InDgree>1 and OutDgree=0 then set n:Node3 end ;语法不晓得对不对。试一试

MATCH (p:RainStormStateNode) WITH p, size (§ -[:SRelationship]-> ()) AS outDegree, size (§ <-[:SRelationship]- ()) AS inDegree WHERE inDegree > 1 AND outDegree > 1 SET p:Label1

@graphway 十分感谢! 确实是我需要的结果!

计算度大于1的节点,并返回节点和度数,参考语句:

MATCH (k)
WITH k, size((k)--()) as degree
WHERE degree > 1
MATCH (k)--(n)
RETURN n,k,degree;
回到顶部