如果节点存在,Neo4j添加/更新属性的问题就消失了以下是如何合并(创建或更新(节点的答案:
您可以使用所有属性的映射一次设置所有属性
merge (n:Node {name: 'John'})
set n = {name: 'John', age: 34, coat: 'Yellow', hair: 'Brown'}
return n
如果你只是想替换属性年龄和外套,你可以这样做。
merge (n:Node {name: 'John'})
set n.age = 34, n.coat = 'Yellow'
return n
或者你也可以将其添加为地图
merge (n:Node {name: 'John'})
set n += {age: 34, coat: 'Yellow'}
return n
任何人都可以告诉如何只在节点存在的情况下更新节点,但如果节点不存在,则不执行任何操作。
最简单的方法是
MATCH (n{id:{uuid}) SET n.prop=true
如果比赛失败,他们将无法对抗SET。
假设您希望后面仍有行;(所以你仍然可以为更复杂的查询返回数据(你可以让匹配成为可选的
...
OPTIONAL MATCH (n{id:{uuid}) SET n.prop=true
同样,如果匹配失败,n将为空,SET将不执行