仅当节点存在时,Neo4j才会添加/更新属性。如果没有那么什么都不做

问题描述 投票:1回答:1

这是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节点,如果它存在,但如果节点不存在则不执行任何操作。

neo4j cypher
1个回答
3
投票

最简单的方法是

MATCH (n{id:{uuid}) SET n.prop=true

如果匹配失败,他们将无需做任何反对。

假设您希望之后仍然有行; (因此您仍然可以返回更复杂查询的数据)您可以将匹配设置为可选

...
OPTIONAL MATCH (n{id:{uuid}) SET n.prop=true

同样,如果匹配失败,则n将为null,并且SET将不执行任何操作

© www.soinside.com 2019 - 2024. All rights reserved.