簡體   English   中英

GraphDB - 獲取不同類型節點之間的路徑

[英]GraphDB - get paths among different types of nodes

我有一個圖形數據庫(使用 Neo4J),由 5 種類型的節點組成,例如文件名、類型 1、類型 2、類型 3 和類型 4。

CREATE (:type1{name:type1_A})
CREATE (:type1{name:type1_B})

CREATE (:type2{name:type2_A})
CREATE (:type2{name:type2_B})

CREATE (:type3{name:type3_A})
CREATE (:type3{name:type3_B})

CREATE (:type4{name:type4_A})
CREATE (:type4{name:type4_B})

CREATE (:filename{name:1A_2A_3A_4A})
CREATE (:filename{name:1A_2A_3A_4A_another})
CREATE (:filename{name:1A_2B_3A_4A})
CREATE (:filename{name:1A_2A_3B_4A})
CREATE (:filename{name:1A_2A_3A_4B})

對於每個文件名,我創建了 4 個鏈接(具有相同的關系名稱),如下所示:

MATCH(n:type1 {name:'type1_A'}) MATCH(f:filename {name:'1A_2A_3A_4A}) CREATE (n)-[:linked_to]->(f)" 
MATCH(n:type2 {name:'type2_A'}) MATCH(f:filename {name:'1A_2A_3A_4A}) CREATE (n)-[:linked_to]->(f)" 
MATCH(n:type3 {name:'type3_A'}) MATCH(f:filename {name:'1A_2A_3A_4A}) CREATE (n)-[:linked_to]->(f)" 
MATCH(n:type4 {name:'type4_A'}) MATCH(f:filename {name:'1A_2A_3A_4A}) CREATE (n)-[:linked_to]->(f)" 

其他文件名依此類推。

現在,例如,我想獲取所有涉及鏈接到type1_A AND type2_A AND type3_A AND type4_A文件名節點的路徑。 在這種情況下,我除了 ' 1A_2A_3A_4A ' 和 ' 1A_2A_3A_4A_another ' 節點以及type1_Atype2_Atype3_A節點的對應路徑。

誰能建議我相應的 Cypher 查詢?

謝謝

試試下面的,看看是否能得到你想要的。

MATCH 
  (f:filename), 
  (t1:type1 {name: "type1_A")-[t1lt:linked_to]->(f), 
  (:type2 {name: "type2_A")-[:linked_to]->(f),
  (:type3 {name: "type3_A")-[:linked_to]->(f),
  (:type4 {name: "type4_A")-[:linked_to]->(f)
RETURN f, t1, t1lt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM