apoc.refactor.setType

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

详细信息

语法

apoc.refactor.setType(rel, newType) :: (input, output, error)

描述

更改指定 RELATIONSHIP(关系)的类型。

输入参数

名称

类型

描述

关系

RELATIONSHIP

要更改类型的关系。

newType

STRING

关系的新类型。

返回参数

名称

类型

描述

input

INTEGER(整数)

给定关联关系的 ID。

输出

RELATIONSHIP

更新类型后的新关联关系的 ID。

错误 (error)

STRING

如果发生错误,则返回错误消息。

使用 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))

动态计算出的类型必须求值为 STRINGLIST<STRING>。更多信息,请参阅 Cypher 手册 → CREATEMERGEMATCH

使用示例

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

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`]

现在的图谱如下所示

apoc.refactor.setType2

此过程不会重命名关系类型;它会创建一个具有新类型的新关系,并将属性从原始关系复制过去,然后删除原始关系。

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