重命名标签、类型和属性
APOC 库包含可用于重命名节点和关系的标签、关系类型和属性的过程。
重命名标签、类型和属性的过程
合格名称 | 类型 |
---|---|
|
过程 |
|
过程 |
|
过程 |
|
过程 |
配置参数
由于数据集合是使用 apoc.periodic.iterate
分批处理的,这些过程支持以下配置参数
名称 | 类型 | 默认 | 描述 |
---|---|---|---|
batchSize |
INTEGER |
10000 |
在单个事务中运行指定数量的操作语句 - 参数: {_count, _batch} |
parallel |
BOOLEAN |
true |
并行运行操作语句 (请注意,如果发生冲突,语句可能会死锁) |
retries |
INTEGER |
0 |
如果操作语句因错误而失败,等待 100 毫秒并重试,直到达到重试次数 - 参数 {_retry} |
batchMode |
STRING |
"BATCH" |
操作语句应如何处理数据驱动语句。有效值为 * "BATCH" - 每 batchSize 执行一次操作语句。操作语句前缀如下,它从 |
concurrency |
INTEGER |
可用处理器数量 |
使用 |
示例
以下示例将进一步解释这些过程。
Engineer
标签的节点,这些节点通过 COLLEAGUES
关系连接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
更改为 DevRel
MATCH (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
更改为 FROLLEAGUES
MATCH (: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
属性更改为 location
MATCH (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
属性更改为 from
MATCH ()-[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"}] |