我希望计算每个节点的传入关系数和传出关系数(这可以提供一些wrt连通性的信息)。
我可以使用如下查询获得传入(或传出)的数量:
MATCH outg=(a)-->(b)
RETURN a.name, labels(a) AS Stereotype,count(rels(outg)) AS out
ORDER BY out DESC
字符串
很好。
但是,如果我尝试添加传入关系:
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
型
那么它就不会产生我所期望的结果。在这种情况下,传入和传出的计数都是相同的,而且比它们本身的计数都高得多(所以某种乘法在进行)。
第二种情况下的逻辑有什么问题?
4条答案
按热度按时间ifsvaxew1#
我投了妮可和萨姆的票。
但我认为还有更简单的:
字符串
你可以用你想要的任何属性来改变
id(a)
。更新NEO4J 5
型
zzwlnbp82#
我会这样做。假设你已经加载了电影数据集:
字符串
你可以在这里看到它的结果:http://console.neo4j.org/r/6ebvy8
i2loujxw3#
这个查询应该对你有用。逻辑非常简单。
字符串
Here is a console,用于演示查询。
查询不能正常工作的原因之一是它使用了
COUNT()
函数,该函数返回行数,而不是集合的长度(或大小)。ibps3vxo4#
字符串