2015-02-09 84 views
1

我已導入CSV,其中每個節點包含3列。 id,parent_id和標題。這是我在mysql中的一個簡單的樹結構。現在我需要在考慮parent_id數據的那些節點之間創建關係。所以每個節點到節點將有2個關係作爲父母和孩子。我對node4j真的很陌生嗎?如何使用屬性信息生成關係[Node4j]

我嘗試以下,但沒有運氣

MATCH (b:Branch {id}), (bb:Branch {parent_id}) 
CREATE (b)-[:PARENT]->(bb) 

回答

1

它好像你的暗號是非常接近的。您要做的第一件事是爲標籤Branchidparent_id屬性創建一個索引。

CREATE INDEX ON :Branch(id) 

CREATE INDEX ON :Branch(parent_id) 

一旦索引創建要匹配所有的標籤Branch節點(我將與一個特定的值限制此啓動,以確保你創建你想要什麼),併爲每個找到通過匹配您的索引屬性來查找相應的父項。

MATCH (b:Branch), (bb:Branch) 
WHERE b.id = ??? 
    AND b.parent_id = bb.id 
CREATE (b)-[:PARENT]->(bb) 

一旦你已經證明了這一點,在一個分支,你會得到你期望我會立即運行更多的分支結果。您仍然可以選擇根據圖表中分支的數量分批進行。

在創建了所有:PARENT關係後,您可以選擇刪除所有parent_id屬性。

MATCH (b:Branch)-[:PARENT]->(:Branch) 
WHERE exists(b.parent_id) 
REMOVE b.parent_id