2015-02-08 78 views
0

如何在一个请求中创建多个关系? Neo.ClientError.Statement.InvalidSyntax “ ”消息: 以下错误下面的示例请求的结果“:” WITH之间需要CREATE UNIQUE和MATCH(线1,列281) 端点: 事务的Cypher HTTP端点 http://localhost:7474/db/data/transaction/commitNeo4j Rest交易HTTP端点Cypher:在一个请求中创建多个唯一关系

请求:

{"statements":[{"statement":" 
    MATCH (nA0:Test{name:'Test B'}), (nB0:Test{name:'Test A'}) 
    CREATE UNIQUE (nA0)-[r:has_parent]->(nB0) 
    MATCH(nA1:Test{name:'Test C'}), (nB1:Test{name:'Test A'}) 
    CREATE UNIQUE (nA1)-[r:has_parent]->(nB1)"}]} 

它的工作原理,如果我只能提交一份MATCH ... CREATE UNIQUE语句,需要一个特定的符?

非常感谢!

编辑: 将这些语句分组到一个MATCH和CREATE UNIQUE中,但这些语句的分离会更适合我的pupose。

{"statements":[{"statement":" MATCH(nSrc0:Test{name:'Test B'}),(nTrgt0:Test{name:'Test A'}),(nSrc1:Test{name:'Test C'}),(nTrgt1:Test{name:'Test A'}) CREATE UNIQUE (nSrc0)-[r0:has_parent]->(nTrgt0), (nSrc1)-[r1:has_parent]->(nTrgt1)"}]} 

回答

1

由于错误提示您必须在CREATE UNIQUE和下一个MATCH之间添加WITH以将阅读子句的写入分开。

  1. 把两个语句在两个独立的条目请求
  2. 使用参数
  3. 使用MERGE而是创建UNIQUE

看到的:

{"statements":[ 

{"statement": 
"MATCH (a:Test{name:{name_a}}), (b:Test{name:{name_b}}) MERGE (a)-[:has_parent]->(b)", 
"parameters":{"name_a":"Test B","name_b":"Test A"}}, 

{"statement": 
"MATCH (a:Test{name:{name_a}}), (b:Test{name:{name_b}}) MERGE (a)-[:has_parent]->(b)", 
"parameters":{"name_a":"Test C","name_b":"Test A"}}, 
... 
]} 
+0

非常感谢! BR – wuz 2015-02-08 23:57:27

相关问题