在我的项目中,我需要统计我的节点大小,节点大小是指深度为2之前与其他节点的连接数量。节点大小是指与其他节点的连接数量,直到深度为2.目前我可以通过两个查询来实现:1.获取所有带有特定标签的节点的id。
MATCH (n:Target) RETURN n.Key WHERE <some_where_logic_here>
2. 使用返回的Key列表进行计数
MATCH (n)-[r *0..2]-(b) WHERE n.Key in {keyList} RETURN n.Key as targetId, count(r) as cnt
然而,我想知道,如果我可以得到相同的结果,只有一个查询?(就像SQL中的子选择一样)
谢谢你
你可以试试这个吗?
MATCH (n:Target)
WHERE <some_condition>
WITH n
MATCH (n)-[r *0..2]-(b)
RETURN n.Key as targetId, count(r) as cnt
你应该可以用一个 MATCH
. 例如:
MATCH (n:Target)
WHERE <some_where_logic_here> AND n.Key in $keyList
RETURN n.Key as targetId, SIZE((n)-[*0..2]-()) as cnt