apoc.refactor.categorize过程Cypher 25 中已弃用
|
此过程已弃用。请参阅下文了解如何使用 Cypher 进行重构的建议。 |
语法 |
|
||
描述 |
根据图中具有指定 |
||
输入参数 |
名称 |
类型 |
描述 |
|
|
要添加到新节点上的属性键。 |
|
|
|
连接到新节点的关系类型。 |
|
|
|
关系是否应为出站关系。 |
|
|
|
新节点的标签。 |
|
|
|
在新节点上引用源键值的名称。 |
|
|
|
要复制到新节点的其他属性键列表。 |
|
|
|
每个批次的最大处理数量。 |
|
使用 Cypher 重构节点
在 Cypher 中,无需使用 APOC 即可动态引用节点标签和关系类型。
CREATE (n1:$(label))-[r:$(type)]->(n2:$(label))
MERGE (n1:$(label))-[r:$(type)]->(n2:$(label))
MATCH (n1:$(label))-[r:$(type)]->(n2:$(label))
动态计算出的类型必须求值为 STRING 或 LIST<STRING>。更多信息,请参阅 Cypher 手册 → CREATE、MERGE、MATCH。
使用 CALL {…} IN CONCURRENT TRANSACTIONS 可以在 Cypher 中实现批处理和并行执行。有关更多信息,请参阅 事务中的 CALL 子查询 → 并发事务。
使用示例
本节中的示例基于以下示例图
CREATE (:Movie {title: 'A Few Good Men', genre: 'Drama'});
使用此过程需要属性唯一性约束:.创建属性唯一性约束
CREATE CONSTRAINT FOR (n:`Genre`) REQUIRE n.`name` IS UNIQUE
以下示例将 Movie 节点上的 genre 属性转换为一个带有 Genre 标签和 name 属性的新节点。同时还会创建一个从 Movie 节点指向该流派节点的 GENRE 关系。
CALL apoc.refactor.categorize('genre', 'GENRE', true, "Genre", "name", [], 100)
MATCH p=()-[:GENRE]->()
RETURN p
MATCH (n) WHERE n.genre IS NOT NULL
MERGE (n)-[:GENRE]->(:Genre {name: n.genre})
REMOVE n.genre
WITH *
MATCH p=()-[:GENRE]->()
RETURN p
| p |
|---|
(:Movie {title: 'A Few Good Men'})-[:GENRE]→(:Genre {name: 'Drama'}) |