apoc.create.setProperties
语法 |
|
||
描述 |
将给定属性设置到给定 |
||
输入参数 |
名称 |
类型 |
描述 |
|
|
要设置属性的节点。 |
|
|
|
要在给定节点上设置的属性键。 |
|
|
|
要分配给给定节点上属性的值。 |
|
返回参数 |
名称 |
类型 |
描述 |
|
|
已更新的节点。 |
|
使用 Cypher 设置属性
可以在 Cypher 中动态引用属性,无需使用 APOC。
用于在节点或关系上动态设置属性的 Cypher 语法
SET n[key]
动态计算的键必须评估为 STRING 值。有关更多信息,请参阅 Cypher 手册 → 动态设置或更新属性。
使用示例
本节中的示例基于以下示例图:
CREATE (jennifer:Person {name: "Jennifer", community: 1, partition: 4})
CREATE (karin:Person {name: "Karin", community: 4, partition: 2})
CREATE (elaine:Person {name: "Elaine", community: 3, partition: 3})
MERGE (jennifer)-[:FRIENDS {since: datetime("2019-06-01")}]-(karin)
MERGE (jennifer)-[:FRIENDS {since: datetime("2019-05-04")}]-(elaine);
我们可以使用 APOC 和 Cypher 复制所有 Person 节点上的属性
apoc.create.setProperties
MATCH (p:Person)
WITH p, keys(p) AS keys
CALL apoc.create.setProperties(p,[k in keys | k + "Copy"], [k in keys | p[k]])
YIELD node
RETURN node
使用 Cypher 的动态属性
MATCH (p:Person)
FOREACH (k IN keys(p) | SET p[k + "Copy"] = p[k])
RETURN p AS node
| node |
|---|
{"name":"Jennifer","partition":4,"community":1,"nameCopy":"Jennifer","partitionCopy":4,"communityCopy":1} |
{"name":"Karin","partition":2,"community":4,"nameCopy":"Karin","partitionCopy":2,"communityCopy":4} |
{"name":"Mark","partition":3,"community":3,"nameCopy":"Mark","partitionCopy":3,"communityCopy":3} |