2017-09-04 260 views
1

我有我努力與Neo4j Cypher查詢。我想要的是讓所有節點具有給定的關係,直到它與低於給定數字的屬性(< 25)達成關係。應該跳過找到該關係後的所有節點。Neo4j Cypher得到節點,直到達到與給定屬性的關係

這裏我圖的示例:

Sample graph

,我怎麼想的結果是(與分享< 25關係IS_OWNER後,每節點應該跳過)

The desired result

我希望有人能夠展示如何編寫Cypher查詢誰可以從樣本圖(圖片1)給出所需的結果(圖片2)。應該跳過關係IS_OWNER與Share < 25之後的每個節點。

回答

1

ALL()函數應該在這裏工作,讓您指定路徑中的所有關係應該具有共享> = 25,否則將修剪進一步展開。

像這樣,假設開始公司C:

MATCH (:Company{name:'C'})-[rels:IS_OWNER*0..]-(companies) 
WHERE all(rel in rels WHERE rel.Share >= 25) 
RETURN companies 

編輯:

儘管它看起來像使用在可變長度關係的變量中的Neo4j的較新版本被棄用(I 「LL上仔細檢查,似乎並不像一個很好的決定),這裏是另一種方式來指定這個圍繞警告得到:

MATCH p = (:Company{name:'C'})-[:IS_OWNER*0..]-(companies) 
WHERE all(rel in relationships(p) WHERE rel.Share >= 25) 
RETURN companies 
+0

它接縫的工作,但我得到了一個警告,所以我會很高興有一個解決方案,這個解決方案也可以與Ne4j的新版本一起工作。你知道如何解決這個警告嗎? 「該功能在一個可變長度的模式使用,將在未來的版本中刪除。 到列表綁定關係已被棄用。(o[email protected]1c973114)」 它接縫,它是使用別名前面的多個關係誰造成這一點,因爲如果我刪除rels或刪除* 0 ..從 - [rels:IS_OWNER * 0 ..] - 它消失 – user1807286

+0

好點,我添加了一個替代查詢應該繞過警告。 – InverseFalcon

相關問題