2017-02-13 61 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

相关问题