2016-03-15 69 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

你是對的,當你需要過濾時,模型並不理想關係屬性 –