1
Neo4j的Cypher支架查詢來獲取所有子節點,直到到達節點與具體的關係
我想創造一種與所謂的「分析單位」藍色節點開始查詢。查詢將獲得所有子節點,除非它運行到通過直接連接到不同分析單元來「覆蓋」關係的節點。任何幫助,將不勝感激!
Neo4j的Cypher支架查詢來獲取所有子節點,直到到達節點與具體的關係
我想創造一種與所謂的「分析單位」藍色節點開始查詢。查詢將獲得所有子節點,除非它運行到通過直接連接到不同分析單元來「覆蓋」關係的節點。任何幫助,將不勝感激!
此查詢是否適合您?
它應該返回每個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;
是的,做了伎倆!非常感謝! ...只需過濾到「a.name =」美國銀行「到紅色的地方就顯示出來了,因爲它來自另一條路徑。 – patrickb19
您是否可以在此擴展?正如在給定您鏈接的圖表一樣,引導我們完成您期望正確查詢的操作以及預期的輸出。 – InverseFalcon
另外:你似乎有關係類型有相反的方向性,但始終存在於相同的節點之間。這種冗餘在neo4j中不是必需的,因爲您可以輕鬆地在任一方向導航關係。 – cybersam
@InverseFalcon當然,我們可以說我對「美國銀行」的起始節點提出質疑......其中一個藍色節點......我想讓所有連接到它的所有東西都以紅色裝箱。這個想法是,它下面的所有東西都會「繼承」「分析的一部分」關係,除非它運行到明確定義與其他地方關係的節點上。我不確定也許最好的做法是爲每個節點提供明確的關係。 – patrickb19