Neo4j 如何根据关系将路径拆分为子路径';s型?

Neo4j 如何根据关系将路径拆分为子路径';s型?,neo4j,cypher,Neo4j,Cypher,我有以下图表: (:Stop)<-[:IS_LOCATED_AT]-(:Stoptime)-[:IS_PART_OF]->(:Trip), (:Stop)<-[:IS_LOCATED_AT]-(:Stoptime)-[:IS_PART_OF]->(:Trip) (:Stop)-[:TRANSFER]->(:Stop) (st1:Stoptime)-[:CONNECTION]->(st2:Stoptime) 这个查询很有效。但我必须检查路径是否包含关系[:TR

我有以下图表:

(:Stop)<-[:IS_LOCATED_AT]-(:Stoptime)-[:IS_PART_OF]->(:Trip),
(:Stop)<-[:IS_LOCATED_AT]-(:Stoptime)-[:IS_PART_OF]->(:Trip)
(:Stop)-[:TRANSFER]->(:Stop)
(st1:Stoptime)-[:CONNECTION]->(st2:Stoptime)
这个查询很有效。但我必须检查路径是否包含关系
[:TRANSFER]
,下一次行程是否在到达当天有效

例如,我有查询后的路径:

path=((sta1:Stoptime)-[c:CONNECTION]->(sta2:Stoptime)-[:IS_LOCATED_AT]->(s1:Stop)-[t:TRANSFER]->(s2:Stop)<-[:IS_LOCATED_AT]-(std3:Stoptime)-[:CONNECTION]->(sta2:Stoptime))
路线从星期四开始。我必须检查一下:

if (x in relationships(path) WHERE type(z)="TRANSFER"):
    if (the sum of duration of all connections between previous stoptimes + duration of transfer > 24) AND (b.friday=true): return path
    else if (b.thursday=true): return path
else return null
我不知道,我怎么能用密码写这个。或者最好在业务层中抛出所有路径并检查此条件

我想,也许在传输之间将路径拆分为子路径会更好

(sta1:Stoptime)-[:IS_PART_OF]->(a:Trip)
(sta2:Stoptime)-[:IS_PART_OF]->(a:Trip)
(stb1:Stoptime)-[:IS_PART_OF]->(b:Trip)
(stb2:Stoptime)-[:IS_PART_OF]->(b:Trip)
if (x in relationships(path) WHERE type(z)="TRANSFER"):
    if (the sum of duration of all connections between previous stoptimes + duration of transfer > 24) AND (b.friday=true): return path
    else if (b.thursday=true): return path
else return null