Neo4j 使用合并更新关系

Neo4j 使用合并更新关系,neo4j,Neo4j,我正在使用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时,将创建一个新的关系。我想要的是更新原始关系 执行此操作的最佳实践是什么?ME

我正在使用
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"

令人惊叹的!非常感谢你!!