Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 如何从节点查找所有路径_Neo4j_Cypher - Fatal编程技术网

Neo4j 如何从节点查找所有路径

Neo4j 如何从节点查找所有路径,neo4j,cypher,Neo4j,Cypher,我是neo4j新手,我读过一些教程,但我一直在寻找一个节点的所有路径,直到它到达另一个节点时,状态发生变化,每次路径都不同 我拍了一张照片: 从顶部的节点开始,我想找到状态为1的所有节点T,我们从类型为O的节点移动到具有“O”关系的T,从类型为T的节点移动到具有“I”关系的O。如果我们到达一个状态为0的节点T,那么我们将进入“i”关系并检查T状态是否为1等 我不知道图表的深度。我在手册上发现我们可以使用[r*1..],但我不知道如何在这里使用 我试过了 match (o1:O)-[:o]-(t

我是neo4j新手,我读过一些教程,但我一直在寻找一个节点的所有路径,直到它到达另一个节点时,状态发生变化,每次路径都不同

我拍了一张照片:

从顶部的节点开始,我想找到状态为1的所有节点T,我们从类型为O的节点移动到具有“O”关系的T,从类型为T的节点移动到具有“I”关系的O。如果我们到达一个状态为0的节点T,那么我们将进入“i”关系并检查T状态是否为1等

我不知道图表的深度。我在手册上发现我们可以使用[r*1..],但我不知道如何在这里使用

我试过了

match (o1:O)-[:o]-(t:T), (t)-[:i]-(o2:O)-[:o]-(t2:T) 
return o1, t, o2, t2
对于第一个深度,但我不知道如何使用未知深度进行操作,并且只要状态不是1,就可以进行更深入的操作(问号表示我不确定您想要什么关系)。
(:O)在您找到如何扩展查询之前,将箭头指向您的关系将非常有帮助;i、 e.
MATCH(o1:O)-[:O]->(t:t)
,因为Neo4j可以利用方向来加速查询。在您的图中,并非所有的
t
节点都有状态。“从顶部开始”是指图表顶部的单个节点吗?你是不是在反向穿越关系?你能根据你的图表说明预期的结果是什么吗?
MATCH (firstnode:O {Status: 0})<-[:o|:i*..]-(othernodes) WHERE othernodes.Status=1 RETURN othernodes