Neo4j Cypher:每个节点的关系数

Neo4j Cypher:每个节点的关系数,neo4j,cypher,Neo4j,Cypher,查找每个用户/节点的边数/关系数的密码是什么? 我想返回每个用户的计数 一般的答案是 MATCH (n)-[r]-() RETURN n, COUNT(r) 但是,对于这种模式,您可能需要制定一些规范。如果您有用户以外的其他节点,则可能希望通过提供用户并查询标签来限制对用户的查询。您可能还希望只计算特定类型的关系或特定方向,因此也可以添加模式的这些部分 如果您的用户是普通人,并且您希望查询每个用户在电话中呼叫其他用户的次数,则查询可能如下所示 MATCH (n:Users)-[r:CALLED

查找每个用户/节点的边数/关系数的密码是什么? 我想返回每个用户的计数

一般的答案是

MATCH (n)-[r]-()
RETURN n, COUNT(r)
但是,对于这种模式,您可能需要制定一些规范。如果您有用户以外的其他节点,则可能希望通过提供用户并查询标签来限制对用户的查询。您可能还希望只计算特定类型的关系或特定方向,因此也可以添加模式的这些部分

如果您的用户是普通人,并且您希望查询每个用户在电话中呼叫其他用户的次数,则查询可能如下所示

MATCH (n:Users)-[r:CALLED]->(:User)
RETURN n.name as user , COUNT(r) as phone_calls_made
如果[:CALLED]关系仅在用户之间获得,则可以在第一行中删除第二个:User标签。

匹配用户和所有关系并返回计数:

最快的方法是在内部使用node.getDegree

您还可以按方向和关系类型分隔rel模式

MATCH (n:User)
RETURN n, size((n)--()) as degree
MATCH (n:User)
RETURN n, size((n)--()) as degree