如何返回每个节点的传入和传出关系的数量

wik*_*ect 4 neo4j

我希望计算传入关系的数量和每个节点的传出关系的数量(这给出了一些关于连接的见解).

我可以使用如下查询获取传入(或传出)的数量:

MATCH outg=(a)-->(b)
RETURN a.name, labels(a) AS Stereotype,count(rels(outg)) AS out
ORDER BY out DESC
Run Code Online (Sandbox Code Playgroud)

这有效.

但是,如果我尝试添加传入关系:

MATCH outg=(a)-->(b), incom=(c)-->(a)
RETURN a.name, labels(a) AS Stereotype,count(rels(outg)) AS out, count(rels(incom)) AS in
ORDER BY out DESC
Run Code Online (Sandbox Code Playgroud)

然后它不会产生我所期望的.在这种情况下,传入和传出计数都是相同的,并且远高于其自身(因此会进行某种乘法).

如何处理以及第二种情况下使用的逻辑有什么问题?

Chr*_*sen 14

我投票给了Nicole和Sam的答案.

不过我认为还有更简单的方法:

MATCH (a)
RETURN id(a), labels(a) as stereotype, 
size((a)-->()) as out, size((a)<--()) as in
Run Code Online (Sandbox Code Playgroud)

您可以随意改变id(a)任何属性.