2016-03-15 139 views
0

一个属性我有图形数据库中的Neo4j与火车站为节点,和火车连接这些站,例如火车站有向关系有关上关系

连接经由关系列车培养站B的Neo4j遍历路径{train no:123}, 列车关系有一个叫train no的属性。

我的问题是获取从A到D的路径,所有中间站都使用相同的列车编号。

甲 - >乙 - “ç - > d

在这个例子中,我应该得到B,C为返回的节点

我试图

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

这个查询给我路径相关的所有的列车,但我想它限制在特定 车次123

回答

0

您可以通过使用上的关系亲ALL谓语做perty:

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 
+0

谢谢克里斯托夫 这工作,但需要很多时间。 我觉得我的图表设计不适合这样的查询,因为我所有的查询都与火车号码有关 不过你的答案是完美的:)所以upvoting – Divyanshu

+0

你是对的,当你需要过滤时,模型并不理想关系属性 –