|| apoc.refactor.rename.nodeProperty - APOC 核心文档 - Neo4j 文档

apoc.refactor.rename.nodeProperty

详情

语法

apoc.refactor.rename.nodeProperty(oldName, newName [, nodes, config ]) :: (batches, total, timeTaken, committedOperations, failedOperations, failedBatches, retries, errorMessages, batch, operations, constraints, indexes)

描述

将所有 NODE 值中给定属性从 oldName 重命名为 newName。如果提供了 LIST<NODE>,则重命名仅适用于此 LIST<NODE> 中的 NODE 值。

输入参数

名称

类型

描述

oldName

STRING

要重命名的属性。

newName

STRING

属性的新名称。

nodes

LIST<NODE>

要应用新名称的节点。如果此列表为空,则所有具有旧属性名称的节点都将被重命名。默认值为:[]

config

MAP

{ batchSize = 100000 :: INTEGER, concurrency :: INTEGER, retries = 0 :: INTEGER, parallel = true :: BOOLEAN, batchMode = "BATCH" :: STRING } 默认值为:{}.

返回参数

名称

类型

描述

batches

INTEGER

操作运行的批次数量。

total

INTEGER

执行的重命名总数。

timeTaken

INTEGER

完成操作所花费的时间。

committedOperations

INTEGER

已提交操作的总数。

failedOperations

INTEGER

失败操作的总数。

failedBatches

INTEGER

失败批次的总数。

retries

INTEGER

重试的总次数。

errorMessages

MAP

收集到的错误消息。

batch

MAP

{ total :: INTEGER, failed :: INTEGER, committed :: INTEGER, errors :: MAP }

operations

MAP

{ total :: INTEGER, failed :: INTEGER, committed :: INTEGER, errors :: MAP }

constraints

LIST<STRING>

与给定标签或类型关联的约束。

indexes

LIST<STRING>

与给定标签或类型关联的索引。

使用 Cypher 设置和删除属性

在 Cypher 中可以动态引用属性,无需使用 APOC。

用于动态设置和删除节点或关系属性的 Cypher 语法
SET n[key] = <expr>
REMOVE n[key]

动态计算的键必须求值为 STRING 值。更多信息请参阅 Cypher 手册 → 动态设置或更新属性Cypher 手册 → 动态删除属性

用法示例

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

CREATE (mark:DevRel {name: "Mark", city: "London"})
CREATE (jennifer:DevRel {name: "Jennifer", city: "St Louis"})
CREATE (michael:DevRel {name: "Michael", city: "Dresden"})
CREATE (jim:Engineer {name: "Jim", city: "London"})
CREATE (alistair:Engineer {name: "Alistair", city: "London"})

以下查询使用 APOC 和 Cypher 将所有带有 DevRel 标签的节点的属性 city 更改为 location

apoc.refactor.rename.nodeProperty
MATCH (person:DevRel)
WITH collect(person) AS people
CALL apoc.refactor.rename.nodeProperty("city", "location", people)
YIELD total
RETURN total
使用 Cypher
MATCH (person:DevRel)
SET person.location = person.city
REMOVE person.city
RETURN count(*) AS total
结果
total

3

以下查询返回重构完成后图中的所有节点:

MATCH (n)
RETURN (n)
结果
n

(:DevRel {name: "Jennifer", location: "St Louis"})

(:DevRel {name: "Michael", location: "Dresden"})

(:Engineer {city: "London", name: "Jim"})

(:DevRel {name: "Mark", location: "London"})

(:Engineer {city: "London", name: "Alistair"})

此过程不会重命名属性;它会创建一个新属性,赋予新名称并从原始属性复制值,然后删除原始属性。

© . This site is unofficial and not affiliated with Neo4j, Inc.