我是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,就可以更深入
答案 0 :(得分:0)
您的架构看起来像这样(问号表示我不确定您在那里想要什么关系)。 (:O)<-[:o]-(:T)<-[:i]-(:O)<-[:o]-(:T)<-[:?]-(:T)>
您需要以某种方式标识从其开始的第一个节点,并且我不确定您要从架构中获取的确切节点,但是类似这样的操作将返回状态为1的所有节点第一个节点,这里只是通过状态0进行标识(因此实际上可能不止一个节点)。
MATCH (firstnode:O {Status: 0})<-[:o|:i*..]-(othernodes) WHERE othernodes.Status=1 RETURN othernodes
但是请注意-任何* ..命令都将永远运行。