在CREATE和MATCH之间需要Neo4j Cypher WITH [英] Neo4j Cypher WITH is required between CREATE and MATCH

查看:755
本文介绍了在CREATE和MATCH之间需要Neo4j Cypher WITH的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在浏览器控制台上同时执行几个查询,这是我的请求:

I want to execute several queries at the same time on the browser console, here are my requests :

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)

当我一一执行它们时没有问题,但是当我同时执行它们时,出现以下错误: 在CREATE和MATCH之间需要WITH

When I execute them one by one there is no problem, but when I execute them at the same time, I get the following error : WITH is required between CREATE and MATCH

有什么办法可以纠正这个问题?

Is there any way to correct this?

推荐答案

添加几个WITH?

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不匹配,它将不会创建任何内容.

Alternatively, you could do it in a different order and avoid the WITHs, the difference being that it won't create anything if n1/n2 don't 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)

这篇关于在CREATE和MATCH之间需要Neo4j Cypher WITH的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆