4

我想用一个新节点和两个新关系替换一个关系(如果存在)。下面的查询测试关系是否存在,但在创建新节点时失败。CREATE 语法独立工作,但不嵌套在 FOREACH 循环中。

START s = node(1)
MATCH (u)-[r?:ROOT]->(s)
FOREACH (u in (CASE WHEN r<>NULL THEN [u] ELSE [] END):

CREATE (u)<-[:REL1]-(n {test:"test"})-[:REL2]->(s))

RETURN s

我收到一条错误消息:

未知标识符n

4

1 回答 1

1

FOREACH结合CREATE这个小样本图http://console.neo4j.org/r/976pas上的语句测试了该部分,并使用以下查询:

START s=node:node_auto_index(name='A') 
MATCH (u)-[r:ROOT]->(s)
FOREACH (u IN (CASE WHEN r<>NULL THEN [u] ELSE [] END ): 
CREATE (u)<-[:REL1]-(n { name:'TEST' })-[:REL2]->(s))
RETURN DISTINCT s

在 neo4j 控制台上,这很好用。它按预期产生以下结果:http: //console.neo4j.org/r/ekreri

于 2013-09-02T10:51:41.493 回答