2014-01-23 53 views
11

我想在同一時間瀏覽器控制檯上執行多個查詢之間,這裏是我的要求:Neo4j的Cypher支架與需要創建和MATCH

CREATE (newNode1:NEW_NODE) 
CREATE (newNode2:NEW_NODE) 
MATCH (n1:LABEL_1 {id: "node1"}) CREATE (newNode1)-[:LINKED_TO]->(n1) 
MATCH (n2:LABEL_2 {id: "node2"}) CREATE (newNode2)-[:LINKED_TO]->(n2) 

當我執行他們一個個都沒有問題,但是當我同時執行它們時,出現以下錯誤: WITH在CREATE和MATCH之間是必需的

有什麼方法可以解決這個問題嗎?

回答

13

添加幾個WITHs?

CREATE (newNode1:NEW_NODE) 
CREATE (newNode2:NEW_NODE) 
WITH newNode1, newNode2 
MATCH (n1:LABEL_1 {id: "node1"}) 
CREATE (newNode1)-[:LINKED_TO]->(n1) 
WITH newNode1, newNode2 
MATCH (n2:LABEL_2 {id: "node2"}) 
CREATE (newNode2)-[:LINKED_TO]->(n2) 

或者,你可以做一個不同的順序,避免WITHs,不同之處在於,如果N1/N2不匹配,它不會產生任何東西。

MATCH (n1:LABEL_1 { id: "node1" }) 
MATCH (n2:LABEL_2 { id: "node2" }) 
CREATE (newNode1:NEW_NODE)-[:LINKED_TO]->(n1) 
CREATE (newNode2:NEW_NODE)-[:LINKED_TO]->(n2) 
+0

最後,我使用了與您指出的相同的方法。 我在創作之前寫下了所有的比賽。 我想有些東西要分開兩個查詢但沒有找到。 謝謝! – jimmy

相關問題