【问题标题】:Neo4j - Update relation between two nodes if already exist, else CREATE relation with given propertiesNeo4j - 如果两个节点之间已经存在,则更新关系,否则创建具有给定属性的关系
【发布时间】:2017-02-24 18:40:16
【问题描述】:

我被 Cypher 困住了。如果关系已经存在,我想更新两个现有(唯一)节点之间的关系,如果这两个节点之间没有关系,我想创建这个关系。 这种情况下正确的密码语法是什么?这个我已经试过了

MATCH (u1:Person {id: "1234"}), (u2:Person {id: "5678"}) MERGE (u1)-[r:KNOWS]->(u2) ON CREATE SET r.duration = 12, r.count = 1 ON MERGE SET r.duration = 12, r.count = r.count + 1 RETURN r 

导致错误

输入“E”无效:预期为“a/A”(第 1 行,第 185 列(偏移量:184)) “匹配(u1:Person {id:“1234”}),(u2:Person {id:“5678”})合并(u1)-[r:KNOWS]->(u2)在创建集r.duration = 12 , r.count = 1 ON MERGE SET r.duration = 12, r.count = r.count + 1 RETURN r"

希望有人可以帮助我! 在此先感谢大家,干杯;)

【问题讨论】:

    标签: node.js neo4j cypher


    【解决方案1】:

    您只是错过了ON MATCHON MERGE(这是错误告诉您的内容:Invalid input 'E': expected 'a/A'

    MATCH (u1:Person {id: "1234"}), (u2:Person {id: "5678"}) 
    MERGE (u1)-[r:KNOWS]->(u2) 
    ON CREATE SET r.duration = 12, r.count = 1 
    ON MATCH SET r.duration = 12, r.count = r.count + 1 
    RETURN r 
    

    【讨论】:

    • 哈!感谢您快速而正确的回答......确实,我期待一个“更好”的错误消息;)
    猜你喜欢
    • 1970-01-01
    • 2018-07-26
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多