我想修改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将被更新。
如果查询添加属性(如果该属性不存在但是如果它已经存在则不会覆盖它),如何进行查询?
答案 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