2017-02-13 96 views
2

Neo4j的是Neo4j的社區版,3.1.1版的Neo4j找到一個節點,以創建關係

我創建了一個節點的LUN

merge (l3:lun {nom:"OS_SU1_", serie:"123456", coordonnees:"00:00:00"}) 
set l3.taille = 102400 

後者,我要一臺主機連接到這LUN,創建主機很容易

merge (hSUP_1:host {nom:"SUP_1"}) 

現在大不了的,我想它的協調和建立的關係,我想

找到升
match (l:lun {coordonnees : "00:00:00"}) merge (hSUP_1) -[:connecte_a]-> (l) 

,並得到一個錯誤:

WITH is required between MERGE and MATCH (line ...)

(我不能讓上述l3標識符,是由腳本生成的那些線是分析不同的文件)

什麼是正確的語法?

手冊頁搜索:neo4j.com/docs/developer-manual/current/cypher/clauses/merge/

回答

2

燁,

你不能讓一個(3.3.8.4合併關係。)匹配在合併後,所以你必須添加一個像這樣之間:

MERGE (hSUP_1:host {nom:"SUP_1"}) 
MATCH (l:lun {coordonnees : "00:00:00"}) 
WITH l, hSUP 
    MERGE (hSUP_1) -[:connecte_a]-> (l) 

否則,你也可以更改順序是這樣的:

MATCH (l:lun {coordonnees : "00:00:00"}) 
MERGE (hSUP_1:host {nom:"SUP_1"}) 
MERGE (hSUP_1) -[:connecte_a]-> (l) 
+0

第二個解決方案工作,但是我不能插入多個主機。我正在使用瀏覽器(localhost:7474)。 – Archemar

+0

我不明白'插入多個主機'...你是什麼意思? – logisima

+0

使用瀏覽器選項,似乎「statement1; statement2」將失敗。跳過分號會導致MERGE和MATCH混淆錯誤。 (我弄清楚如何運行cypher-shell,不值得問一個新的模糊問題) – Archemar

相關問題