apoc.refactor.rename.typeProperty

此过程已弃用。请改用 Cypher 的 SETREMOVE 子句。

详细信息

语法

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

描述

将所有 RELATIONSHIP(关系)中指定的属性名从 oldName 重命名为 newName。如果提供了 LIST<RELATIONSHIP>,则仅对该 LIST<RELATIONSHIP> 中的 RELATIONSHIP 值应用重命名。

输入参数

名称

类型

描述

oldName

STRING

要重命名的属性。

newName

STRING

赋予该属性的新名称。

rels

LIST<RELATIONSHIP>

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

config

MAP

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

返回参数

名称

类型

描述

batches

INTEGER(整数)

操作运行的批次数。

总计

INTEGER(整数)

执行重命名的总数。

耗时

INTEGER(整数)

完成操作所花费的时间。

已提交的操作

INTEGER(整数)

已提交操作的总数。

failedOperations

INTEGER(整数)

失败操作的总数。

failedBatches

INTEGER(整数)

失败批次的总数。

retries

INTEGER(整数)

重试的总次数。

errorMessages

MAP

收集的错误消息。

batch

MAP

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

操作

MAP

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

constraints

LIST<STRING>

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

indexes

LIST<STRING>

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

使用 Cypher 设置和删除属性

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

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

动态计算的键必须求值为 STRING 类型。有关详细信息,请参阅《Cypher 手册》→ 动态设置或更新属性动态删除属性

用法示例

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

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

MERGE (jim)-[:COLLEAGUES {since: date("2006-05-01")}]->(alistair)
MERGE (mark)-[:COLLEAGUES {since: date("2018-02-01")}]->(jennifer)
MERGE (mark)-[:COLLEAGUES {since: date("2013-05-01")}]->(michael);

以下查询将所有关系中的属性 since 更改为 from(同时使用 APOC 和 Cypher)

apoc.refactor.rename.typeProperty
MATCH ()-[rel]->()
WITH collect(rel) AS rels
CALL apoc.refactor.rename.typeProperty("since", "from", rels)
YIELD total
RETURN total
使用 Cypher
MATCH ()-[rel]->()
SET rel.from = rel.since
REMOVE rel.since
RETURN count(*) AS total
结果
总计

3

以下查询返回在执行此重构操作后图中的所有路径

MATCH path = ()-[]->()
RETURN path
结果
path

[{"name":"Mark","location":"London"},{"from":"2018-02-01"},{"name":"Jennifer","location":"St Louis"}]

[{"name":"Mark","location":"London"},{"from":"2013-05-01"},{"name":"Michael","location":"Dresden"}]

[{"name":"Jim","city":"London"},{"from":"2006-05-01"},{"name":"Alistair","city":"London"}]

此过程并非直接重命名属性;它会创建一个具有新名称的新属性,并将原始属性的值复制过去,随后删除原始属性。

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