Neo4j:合并时不会覆盖节点属性

时间:2015-06-04 10:58:58

标签: neo4j cypher

我想修改MERGE Cypher查询,以便不覆盖属性字段。

要更新节点属性,请使用以下cypher查询:

MERGE (n:Person {name:"me"}) ON MATCH SET n+={id:"2"} ON CREATE SET n={name:"me", id="1"} RETURN n

如果我再次使用相同的查询 ON MATCH SET n+={id:"3"} id将被更新。

如果查询添加属性(如果该属性不存在但是如果它已经存在则不会覆盖它),如何进行查询?

1 个答案:

答案 0 :(得分:1)

首先,您可以使用普通属性,无需执行{map} ..

其次,如果MERGE创建节点,他将拥有属性名称:me on it:

MERGE (n:Person {name:'me'})
ON MATCH SET n.id = 2
ON CREATE SET n.id = 1
RETURN n