Graph 获取节点之间的关系

Graph 获取节点之间的关系,graph,neo4j,spring-data-neo4j,Graph,Neo4j,Spring Data Neo4j,我使用此查询得到以下类型的图形: MATCH (p:Person)-[:REPORTS_TO *]->(c:Person) WHERE p.name="F" WITH COLLECT (c) + p AS all UNWIND all as p MATCH (p)-[:REPORTS_TO]-(c) RETURN p,c; 用例: 1。我想找出节点相对于节点F? 例如: Node `D`, `E` are direct child of `F`, hen

我使用此查询得到以下类型的图形:

MATCH (p:Person)-[:REPORTS_TO *]->(c:Person) WHERE p.name="F"
WITH COLLECT (c) + p AS all 
UNWIND all as p MATCH (p)-[:REPORTS_TO]-(c) 
RETURN p,c;

用例:

1。我想找出节点相对于节点
F
例如:

    Node `D`, `E` are direct child of `F`, hence they are at level 1
    
    Node `A,B,C` are childs of `D` (which is child of `F`) hence level 2
    
    Node `X` is child of `A' (which is at level 2), hence level 3

and so onnnnn....
我试图通过引入一个变量
I
来解决这个问题,并在每次迭代中增加它(,但它不起作用)

2。给定两个节点,查找它们之间的关系

e、 g
查找F和X之间的关系?

预期
answer=3(与第3级相同)

我应该如何着手解决这些用例?

注意:不一定需要Neo4j服务器的图形响应,Json响应也可以。UC1使用和
length(p)
函数

MATCH p=(root:Person)-[:REPORTS_TO *]->(child:Person) 
WHERE root.name="F"
RETURN nodes(p)[-2], nodes(p)[-1],length(p)
这将找到根节点的所有路径,并返回所需的从第二个到最后一个和最后一个节点+级别的成对路径

节点(p)-路径p上的节点列表

[-2]-列表末尾的第二个节点

UC2:使用
最短路径
功能:

MATCH (p1:Person),(p2:Person)
WHERE p1.name = '..' AND p2.name = '...'
MATCH p=shortestPath((p2)-[:REPORTS_TO*]->(p2))
RETURN length(p)
UC1使用和
长度(p)
功能

MATCH p=(root:Person)-[:REPORTS_TO *]->(child:Person) 
WHERE root.name="F"
RETURN nodes(p)[-2], nodes(p)[-1],length(p)
这将找到根节点的所有路径,并返回所需的从第二个到最后一个和最后一个节点+级别的成对路径

节点(p)-路径p上的节点列表

[-2]-列表末尾的第二个节点

UC2:使用
最短路径
功能:

MATCH (p1:Person),(p2:Person)
WHERE p1.name = '..' AND p2.name = '...'
MATCH p=shortestPath((p2)-[:REPORTS_TO*]->(p2))
RETURN length(p)

非常感谢解决了
用例1
,但是如何继续
用例2
@PrakashPandey为uc2添加了答案非常感谢解决了
用例1
,但是如何继续
用例2
@PrakashPandey为uc2添加了答案