2016-09-30 100 views
1

Graph I am trying to parseNeo4j的Cypher支架查詢來獲取所有子節點,直到到達節點與具體的關係

我想創造一種與所謂的「分析單位」藍色節點開始查詢。查詢將獲得所有子節點,除非它運行到通過直接連接到不同分析單元來「覆蓋」關係的節點。任何幫助,將不勝感激!

+1

您是否可以在此擴展?正如在給定您鏈接的圖表一樣,引導我們完成您期望正確查詢的操作以及預期的輸出。 – InverseFalcon

+0

另外:你似乎有關係類型有相反的方向性,但始終存在於相同的節點之間。這種冗餘在neo4j中不是必需的,因爲您可以輕鬆地在任一方向導航關係。 – cybersam

+0

@InverseFalcon當然,我們可以說我對「美國銀行」的起始節點提出質疑......其中一個藍色節點......我想讓所有連接到它的所有東西都以紅色裝箱。這個想法是,它下面的所有東西都會「繼承」「分析的一部分」關係,除非它運行到明確定義與其他地方關係的節點上。我不確定也許最好的做法是爲每個節點提供明確的關係。 – patrickb19

回答

1

此查詢是否適合您?

它應該返回每個Blue節點(其具有任何Red節點的路徑)和它的「子節點」(沿着每個這些路徑的),忽略路徑在其中的任何子節點(第一個除外)具有傳入ANALYTICALLY_COMPOSED關係:

MATCH (a:Blue)-[:ANALYTICALLY_COMPOSED]->(b) 
MATCH p=(b)-[rels*]-(:Red) 
WITH a, NODES(p) AS subnodes 
WHERE NONE(n IN subnodes[1..] WHERE()-[:ANALYTICALLY_COMPOSED]->(n)) 
RETURN a, subnodes; 
+0

是的,做了伎倆!非常感謝! ...只需過濾到「a.name =」美國銀行「到紅色的地方就顯示出來了,因爲它來自另一條路徑。 – patrickb19

相關問題