与关系上的属性相关的neo4j遍历路径
我有Neo4j中的图形数据库,其中火车站作为节点,火车按照定向关系连接这些车站 例如,火车站A通过列车{Train no:123}关系连接到火车站B, 列车关系有一个名为列车号的属性 我的问题是得到一条从a到D的路径,所有中间站都用相同的列车号连接 A-->B-->C-->D 对于这个例子,我应该得到B,C作为返回的节点 我试过了与关系上的属性相关的neo4j遍历路径,neo4j,cypher,traversal,Neo4j,Cypher,Traversal,我有Neo4j中的图形数据库,其中火车站作为节点,火车按照定向关系连接这些车站 例如,火车站A通过列车{Train no:123}关系连接到火车站B, 列车关系有一个名为列车号的属性 我的问题是得到一条从a到D的路径,所有中间站都用相同的列车号连接 A-->B-->C-->D 对于这个例子,我应该得到B,C作为返回的节点 我试过了 MATCH (from:TrainStation { stationCode:'A' }), (to:TrainStation {stationCode:'D'})
MATCH (from:TrainStation { stationCode:'A' }),
(to:TrainStation {stationCode:'D'}) ,
path = (from)-[r:train*..]->(to)
RETURN path
此查询为我提供了与所有列车相关的路径,但我想将其限制为
特定的列车号123您可以通过使用关系属性上的
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
谢谢Christophe这很有效,但需要很多时间。我认为我的图表不适合此类查询,因为我的所有查询都与列车号相关,但您的答案是完美的:)因此Upvoting您是对的,当您需要筛选关系属性时,该模型并不理想