Neo4j Cypher WITH требуется между CREATE и 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

Есть ли способ исправить это?

Ответ 1

Добавьте пару СО?

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)

В качестве альтернативы вы можете сделать это в другом порядке и избегать WITH, разница в том, что он ничего не создаст, если n1/n2 не MATCH.

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)