我正在使用该MERGE
功能来创建或更新节点,并在它们之间创建关系,如下所示:
MATCH (p:Part{f:'fff'}) MERGE (m:Item {p1: {map}.p1}) ON CREATE SET m = {map} ON MATCH SET m += {map} MERGE (m)-[:USED_WITH{pri:'High'}]->(p)
但是,当我重新运行此文件,但pri
在随后的运行中更改属性时,会创建一个新的关系。我想要的是要更新原始关系。
最佳做法是什么?
MERGE
确保模式与描述的完全一样,包括属性和值,并否则创建一个新模式。
当您更改pri
模式中的属性值时,Cypher找不到该模式的匹配项,因为属性值不同,因此会创建新的关系。
您可以MERGE
对关系类型使用,然后使用SET
更新属性值:
MERGE (m)-[r:USED_WITH]->(p) SET r.pri = "Low"