2015-02-08 82 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

相關問題