【问题标题】:Neo4j Cypher WITH is required between CREATE and MATCH在 CREATE 和 MATCH 之间需要 Neo4j Cypher WITH
【发布时间】:2014-02-13 09:09:31
【问题描述】:

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

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

有什么办法可以改正吗?

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    添加几个 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)
    

    或者,您可以以不同的顺序执行此操作并避免使用 WITH,不同之处在于如果 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)
    

    【讨论】:

    • 最后,我使用了您指出的相同方法。我在创作之前写下了我所有的比赛。我认为有一些东西可以分开两个查询,但没有找到。谢谢!
    猜你喜欢
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    相关资源
    最近更新 更多