这是Neo4j Add/update properties if node exists的问题的解决方案有如何MERGE(创建或更新)节点的答案:
您可以使用所有属性的地图一次性设置它们
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
任何人都可以告诉如何UPDATE节点,如果它存在,但如果节点不存在则不执行任何操作。
最简单的方法是
MATCH (n{id:{uuid}) SET n.prop=true
如果匹配失败,他们将无需做任何反对。
假设您希望之后仍然有行; (因此您仍然可以返回更复杂查询的数据)您可以将匹配设置为可选
...
OPTIONAL MATCH (n{id:{uuid}) SET n.prop=true
同样,如果匹配失败,则n将为null,并且SET将不执行任何操作