3

我需要根据关系获取节点的统计信息。例如,如果我有一个节点“名人”,它具有三种类型的关系:FAN_OF、FRIEND_OF 和 RELATIVE_OF,如何仅通过一次查询获得粉丝、朋友和亲戚的数量?我知道如何分别处理每种关系类型,但我需要在一个查询中将它们全部返回。

4

2 回答 2

4

如果我明白你的问题是什么,这应该让你接近:

START n=node(*) 
MATCH n-[r]->m 
RETURN n, TYPE(r), COUNT(m)

然后,您会将匹配关系限制为您的类型(尽管示例中不存在这些关系):

START n=node(*) 
MATCH n-[r:FAN_OF|FRIEND_OF|RELATIVE_OF]->m 
RETURN n, TYPE(r), COUNT(m)

在这里查看并使用它:http ://console.neo4j.org/?id=nbba2s

于 2013-08-13T22:24:17.283 回答
2

也许这样的事情会让你开始。如果您发布一些示例图形数据(尤其是在 console.neo4j.org 上)会很有帮助,这样我们就可以测试查询。

start c=node(...)
match c<-[:FAN_OF]-fan, c-[:FRIEND_OF]-friend, c-[:RELATIVE_OF]-r
return c, count(distinct fan) as fancount, count(distinct friend) as friendcount, count(distinct r) as relativecount
于 2013-08-13T22:09:31.350 回答