apoc.create.relationship

此过程已弃用。如需动态创建关系,请改用 Cypher 的 CREATE 子句。

详细信息

语法

apoc.create.relationship(from, relType, props, to) :: (rel)

描述

使用给定的动态关系类型创建一个 RELATIONSHIP(关系)。

输入参数

名称

类型

描述

从 (from)

NODE

作为外向关系起点的节点。

relType

STRING

分配给新关系的类型。

props

MAP

分配给新关系的属性。

转换为

NODE

作为内向关系终点的节点。

返回参数

名称

类型

描述

关系

RELATIONSHIP

已创建的关系。

使用 Cypher 创建带有动态类型的关系

无需使用 APOC,即可在 Cypher 中动态引用关系类型。

用于动态创建类型的 Cypher 语法
CREATE ()-[r:$(type)]->()

动态计算出的类型必须求值为 STRINGLIST<STRING>。有关更多信息,请参阅 Cypher 手册 → 使用动态节点标签和关系类型创建节点和关系

使用示例

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

CREATE (p:Person {name: "Tom Hanks"})
CREATE (m:Movie {title:"You've Got Mail"});

下面的示例演示了如何通过使用参数动态传入类型和属性,来使用 APOC 和 Cypher 创建关系

以下代码创建了 relTypeproperties 参数

:param relType =>  ("ACTED_IN");
:param properties => ({roles: ["Joe Fox"]});
apoc.create.relationship
MATCH (p:Person {name: "Tom Hanks"})
MATCH (m:Movie {title:"You've Got Mail"})
CALL apoc.create.relationship(p, $relType, $properties, m)
YIELD rel
RETURN rel;
CREATE 子句
MATCH (p:Person {name: "Tom Hanks"})
MATCH (m:Movie {title:"You've Got Mail"})
CREATE (p)-[rel:$($relType) $properties]->(m)
RETURN rel;
结果
关系

[:ACTED_IN {roles: ["Joe Fox"]}]