neo4j与关系属性相关的遍历路径

时间:2016-03-15 08:37:30

标签: neo4j cypher traversal

我在Neo4j中有Graph数据库,火车站作为节点,并且将这些站连接为指导关系

例如火车站A通过关系列车{火车号码:123}连接到火车站B, 火车关系有一个名为train no。的财产。

我的问题是从A到D的路径,所有中间站都连接着相同的列号。

A - >乙 - > C - > d

对于这个例子,我应该得到B,C作为返回节点

我试过

MATCH (from:TrainStation { stationCode:'A' }), 
(to:TrainStation {stationCode:'D'}) ,
path = (from)-[r:train*..]->(to)
RETURN path

此查询为我提供了与所有列车相关的路径,但我想将其限制为 特定列车编号123

1 个答案:

答案 0 :(得分:0)

您可以使用关系属性上的ALL谓词来执行此操作:

MATCH (from:TrainStation { stationCode:'A' }), 
(to:TrainStation {stationCode:'D'}) ,
MATCH path = (from)-[r:train*..]->(to)
WHERE ALL (x in rels(path) WHERE x.`train no` = 123)
RETURN path