apoc.create.setProperty

此过程已弃用。如需动态设置属性,请改用 Cypher 的 SET 子句。

详细信息

语法

apoc.create.setProperty(nodes, key, value) :: (node)

描述

将给定的属性设置到指定的 NODE 值上。

输入参数

名称

类型

描述

节点

ANY

要设置属性的节点。

键 (key)

STRING

要设置的属性键的名称。

ANY

要设置的属性值。

返回参数

名称

类型

描述

节点

NODE

更新后的节点。

使用 Cypher 设置属性

在 Cypher 中无需使用插件即可动态引用属性。

用于在节点或关系上动态设置属性的 Cypher 语法
SET n[key]

动态计算出的键必须评估为 STRING 值。有关更多信息,请参阅 Cypher 手册 → 动态设置或更新属性

使用示例

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

CREATE (stop:Stop {arrival: "0802", departure: "0803"});

我们希望将 arrivaldeparture 属性转换为时间(Time)类型,并将它们存储为新的属性,其名称基于原始属性键。

我们可以通过运行以下查询来生成新的属性键和时间值

MATCH (stop:Stop)
UNWIND ["arrival", "departure"] AS key
RETURN key + "Time" AS newKey, time(stop[key]) AS time;
结果
newKey

time

"arrivalTime"

08:02Z

"departureTime"

08:03Z

使用 apoc.create.setProperty 或仅使用 Cypher

apoc.create.setProperty
MATCH (stop:Stop)
UNWIND ["arrival", "departure"] AS key
WITH stop, key + "Time" AS newKey, time(stop[key]) AS time
CALL apoc.create.setProperty(stop, newKey, time)
YIELD node
RETURN node;
使用 Cypher 的动态属性
MATCH (stop:Stop)
UNWIND ["arrival", "departure"] AS key
WITH stop, key + "Time" AS newKey, time(stop[key]) AS time
SET stop[newKey] = time
RETURN stop AS node
结果
节点

(:Stop {departure: "0803", arrival: "0802", arrivalTime: 08:02Z})

(:Stop {departureTime: 08:03Z, departure: "0803", arrival: "0802", arrivalTime: 08:02Z})