我想回到所有節點一個和b,其中b不是通過與關係相對開始的任何路徑一個下游。我不斷髮現自己不得不編寫一個條件,其中一個通過相對,還有一個間接的情況下直接鏈接到b的情況下,導致了這樣的事情:暗號:量化的零個以上的節點,然後-關係
//Semi-pseudo-code.
match (a)-[*]->(b)
optional match dir=(a)-[:rel]->(b)
optional match indir=(a)-[:rel]-()-[*]->(b)
where length(dir)=0
and length(indir)=0
return a,b
有更簡單的方法?真的,我想是這樣的,在這裏裸量詞表示「零個或多個節點,然後-關係」:
match (a)-[*]->(b)
match not (a)-[:rel]-*->(b)
return a,b
注:我懷疑這可能從根本是一樣的我的最後一個問題:Cypher: Matching nodes at arbitrary depth via a strictly alternating set of relations
感謝您的回覆。但是,您的代碼是否仍然與直接案例相匹配?: (a) - [:rel] - >(b) 我需要排除該情況。 (或者我誤解了?) –
好點 - [可變長度關係](https://neo4j.com/docs/developer-manual/current/cypher/#_variable_length_relationships)缺省爲1的「minHops」值。I fixed該查詢將在一分鐘內添加一個示例。 –