2016-12-01 68 views
1

我想匹配2個節點之間的路徑,其中存在0個或更多個特定類型的關係但以特定的不同關係結束,例如它應符合:neo4j匹配具有0個或更多以第二關係結束的關係的路徑

(a) -> [:GRANT] -> (b) 
(a) - [:MEMBER] ->() -> [:GRANT] -> (b) 
(a) - [:MEMBER] ->() - [:MEMBER] ->() -> [:GRANT] -> (b) 

但不

(a) - [:MEMBER] ->() - [:GRANT] ->() -> [:GRANT] -> (b) 

我用盡:

MATCH (a) - [:MEMBER *] ->() - [:GRANT] -> (b) 

但它只w^orks是否至少有一個成員關係(例如(()節點必須存在)。

香港專業教育學院也嘗試過這樣的事情:

MATCH (a) - [:MEMBER *] -- [:GRANT] -> (b) 

,但他們有語法錯誤。

有沒有一種方法可以選擇性地匹配關係,同時確保鏈在特定的第二種關係類型中結束?

回答

2

你很近,你需要的最小可變長度的關係設置爲0,像這樣:

MATCH (a) - [:MEMBER *0..] ->() - [:GRANT] -> (b) 

你現在的想法,但這裏的link在文檔的部分以防萬一。

+0

史詩,完美的作品。非常感激 –

相關問題