apoc.refactor.setType过程Cypher 25 中已弃用
语法 |
|
||
描述 |
更改指定 |
||
输入参数 |
名称 |
类型 |
描述 |
|
|
要更改类型的关系。 |
|
|
|
关系的新类型。 |
|
返回参数 |
名称 |
类型 |
描述 |
|
|
给定关联关系的 ID。 |
|
|
|
更新类型后的新关联关系的 ID。 |
|
|
|
如果发生错误,则返回错误消息。 |
|
使用 Cypher 重构节点
在 Cypher 中,无需使用 APOC 即可动态引用节点标签和关系类型。
用于动态创建、匹配和合并标签与类型的 Cypher 语法
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。
使用示例
本节中的示例基于以下图数据
CREATE (f:Foo)-[rel:FOOBAR]->(b:Bar);
以下查询使用 APOC 和 Cypher 将关系类型从 FOOBAR 更改为 NEW-TYPE
apoc.refactor.setType
MATCH (f:Foo)-[rel:FOOBAR]->(b:Bar)
CALL apoc.refactor.setType(rel, 'NEW-TYPE')
YIELD input, output
RETURN input, output;
使用 Cypher
MATCH (f:Foo)-[rel:FOOBAR]->(b:Bar)
CREATE (f)-[r:`NEW-TYPE`]->(b)
SET r = properties(rel)
DELETE rel
RETURN id(r), type(r)
如果我们执行此查询,它将产生以下输出
| input | 输出 |
|---|---|
30 |
[:`NEW-TYPE`] |
现在的图谱如下所示
|
此过程不会重命名关系类型;它会创建一个具有新类型的新关系,并将属性从原始关系复制过去,然后删除原始关系。 |