重命名标签、类型和属性
APOC 库包含可用于重命名节点和关系的标签、关系类型以及属性的存储过程。
重命名标签、类型和属性的存储过程
| 限定名称 | 类型 |
|---|---|
|
过程 (Procedure) Cypher 25 中已弃用 |
|
过程 (Procedure) Cypher 25 中已弃用 |
|
过程 (Procedure) Cypher 25 中已弃用 |
|
过程 (Procedure) Cypher 25 中已弃用 |
配置参数
由于数据集合是使用 apoc.periodic.iterate 进行批量处理的,这些过程支持以下配置参数
| 名称 (name) | type | 默认 | description(描述) |
|---|---|---|---|
batchSize |
INTEGER(整数) |
10000 |
在单个事务中运行指定数量的操作语句 - 参数:{_count, _batch} |
parallel(并行) |
布尔值 (BOOLEAN) |
true |
并行运行操作语句(注意:如果存在冲突,语句可能会发生死锁) |
retries |
INTEGER(整数) |
0 |
如果操作语句因错误而失败,则休眠 100 毫秒并重试,直到达到重试次数 - 参数 {_retry} |
batchMode(批处理模式) |
STRING |
"BATCH" |
操作语句应如何处理数据驱动的语句。有效值包括 * "BATCH" - 每个 batchSize 执行一次操作语句。操作语句会添加以下前缀,该前缀从 |
concurrency |
INTEGER(整数) |
可用处理器的数量 |
使用 |
示例
以下示例将进一步解释这些过程。
COLLEAGUES 关系连接的带有 Engineer 标签的节点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)
如果运行上述查询,将得到以下图形
重命名节点标签
Engineer 更改为 DevRelMATCH (person:Engineer)
WHERE person.name IN ["Mark", "Jennifer", "Michael"]
WITH collect(person) AS people
CALL apoc.refactor.rename.label("Engineer", "DevRel", people)
YIELD committedOperations
RETURN committedOperations
如果运行上述查询,将得到以下图形
重命名关系类型
COLLEAGUES 更改为 FROLLEAGUESMATCH (:Engineer {name: "Jim"})-[rel]->(:Engineer {name: "Alistair"})
WITH collect(rel) AS rels
CALL apoc.refactor.rename.type("COLLEAGUES", "FROLLEAGUES", rels)
YIELD committedOperations
RETURN committedOperations
重命名节点属性
DevRel 标签的节点的节点属性 city 更改为 locationMATCH (person:DevRel)
WITH collect(person) AS people
CALL apoc.refactor.rename.nodeProperty("city", "location", people)
YIELD committedOperations
RETURN committedOperations
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"}) |
重命名关系属性
since 更改为 fromMATCH ()-[rel]->()
WITH collect(rel) AS rels
CALL apoc.refactor.rename.typeProperty("since", "from", rels)
YIELD committedOperations
RETURN committedOperations
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"}] |