对于 neo4j 中的节点,我们能否在 O(1) 时间内获得节点的 in/out 度?
Can we get in/out degree of a node in O(1) time for a node in neo4j?
我想获得 neo4j 中给定节点的 in/out 度。一种方法是使用以下查询:
MATCH (u: Node{ name: 'Node 1' })-[]->(v) RETURN count(v);
这需要查找u
的关系。
另一种方法是在插入节点时不断更新节点的度数,然后我们可以通过找到节点来获得度数。
这个是我们自己维护还是neo4j自己管理,这样我们只要找到节点就可以得到度数。
我想通过密码查询或在 python 驱动程序中进行。
是的,size()
函数相当于节点上的javagetDegree()
方法,是O(1)操作:
Return 进出:
MATCH (u: Node{ name: 'Node 1' })
RETURN size((u)-->()) AS degreeOut,
size((u)<--()) as degreeIn
如果你想通过特定的关系类型,这也是等价的:
MATCH (u: Node{ name: 'Node 1' })
RETURN size((u)-[:FOLLOWS]->()) AS followingCount
我想获得 neo4j 中给定节点的 in/out 度。一种方法是使用以下查询:
MATCH (u: Node{ name: 'Node 1' })-[]->(v) RETURN count(v);
这需要查找u
的关系。
另一种方法是在插入节点时不断更新节点的度数,然后我们可以通过找到节点来获得度数。
这个是我们自己维护还是neo4j自己管理,这样我们只要找到节点就可以得到度数。 我想通过密码查询或在 python 驱动程序中进行。
是的,size()
函数相当于节点上的javagetDegree()
方法,是O(1)操作:
Return 进出:
MATCH (u: Node{ name: 'Node 1' })
RETURN size((u)-->()) AS degreeOut,
size((u)<--()) as degreeIn
如果你想通过特定的关系类型,这也是等价的:
MATCH (u: Node{ name: 'Node 1' })
RETURN size((u)-[:FOLLOWS]->()) AS followingCount