apoc.atomic.update

详细信息

语法

apoc.atomic.update(container, propertyName, operation [, retryAttempts ]) :: (container, property, oldValue, newValue)

描述

使用 Cypher 操作更新属性的值。

输入参数

名称

类型

描述

container

ANY

要更新属性所在的节点或关系。

属性名称 (propertyName)

STRING

要更新的属性名称。

操作 (operation)

STRING

用于更新属性的执行操作。

retryAttempts

INTEGER(整数)

最大重试次数。默认值为:5

返回参数

名称

类型

描述

container

ANY

更新后的节点或关系。

属性 (property)

STRING

更新后的属性名称。

oldValue

ANY

属性上的原始值。

newValue

ANY

属性上的新值。

使用示例

本节中的示例基于以下示例图

CREATE (:Person {name:'Tom',age: 40})
CREATE (:Person {name:'Will',age: 35})
CREATE (:Person {name:'David', children: ['Anne','Sam','Paul']})
CREATE (:Person {name:'John', cars: ['Class A','X3','Focus']})
CREATE (:Person {name:'Ryan', salary1:1800, salary2:1500});

以下示例使用表达式的结果更新 salary1

MATCH (p:Person {name:'Ryan'})
CALL apoc.atomic.update(p,'salary1','n.salary1*3 + n.salary2',5)
YIELD oldValue, newValue
RETURN oldValue, newValue;

operation 表达式(第 3 个参数)中,作为 container(第 1 个参数)传入的实体使用变量 n 表示。如果我们重命名了节点/关系(如上例所示),我们在表达式中仍然必须使用 n 来引用它。

结果
oldValue newValue

1800

6900