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