apoc.create.setProperty
语法 |
|
||
描述 |
将给定属性设置为给定 `NODE` 的值。 |
||
输入参数 |
名称 |
类型 |
描述 |
|
|
要设置属性的节点。 |
|
|
|
要设置的属性键的名称。 |
|
|
|
要设置的属性值。 |
|
返回参数 |
名称 |
类型 |
描述 |
|
|
更新后的节点。 |
|
使用 Cypher 设置属性
属性可以在 Cypher 中动态引用。
在节点或关系上动态设置属性的 Cypher 语法
SET n[key]
动态计算的键必须解析为 `STRING` 类型的值。更多信息请参阅Cypher 手册 → 动态设置或更新属性。
使用示例
本节示例基于以下示例图
CREATE (stop:Stop {arrival: "0802", departure: "0803"});
我们希望将 `arrival` 和 `departure` 属性转换为时间类型,并将其存储为新属性,新属性的名称基于原始属性键。
我们可以通过运行以下查询来生成新的属性键和时间值
MATCH (stop:Stop)
UNWIND ["arrival", "departure"] AS key
RETURN key + "Time" AS newKey, time(stop[key]) AS 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
| node |
|---|
(:Stop {departure: "0803", arrival: "0802", arrivalTime: 08:02Z}) |
(:Stop {departureTime: 08:03Z, departure: "0803", arrival: "0802", arrivalTime: 08:02Z}) |