|| apoc.nodes.link - APOC 核心文档 - Neo4j 文档

apoc.nodes.link

详情

语法

apoc.nodes.link(nodes, type [, config ])

描述

使用给定的 RELATIONSHIP 类型连接给定的 NODE 值,创建一个链表。

输入参数

名称

类型

描述

nodes

LIST<NODE>

要链接的节点列表。

type

STRING

用于链接节点的关系类型名称。

config

MAP

{ avoidDuplicates = false :: BOOLEAN } 默认值为:{}

配置参数

此过程支持以下配置参数

配置参数
名称 类型 默认值 描述

avoidDuplicates

BOOLEAN

false

如果为 true,则如果关系已存在,将不会创建新关系

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

CREATE (:Event {name: "Event 1", date: datetime("2019-06-01")})
CREATE (:Event {name: "Event 2", date: datetime("2019-06-04")})
CREATE (:Event {name: "Event 3", date: datetime("2019-06-08")});

我们可以通过在 Cypher 或 APOC 中运行以下查询来创建这些事件的链表

apoc.nodes.link
MATCH (e:Event)
WITH e ORDER BY e.date
WITH collect(e) AS events
CALL apoc.nodes.link(events, "NEXT")
RETURN count(*);
使用 Cypher
MATCH (e:Event)
WITH e ORDER BY e.date
WITH collect(e) AS events
UNWIND range(0, size(events) - 2) AS x
WITH x, events[x] AS node1, events[x+1] AS node2
CREATE (node1)-[:NEXT]->(node2)
RETURN count(*);
linked list events

我们可以使用 {avoidDuplicates: true} 配置检查关系是否存在;调用前一个查询两次,将在节点之间创建 2 个 "NEXT" 类型的关系,而通过执行 CALL apoc.nodes.link(events, "NEXT", {avoidDuplicates: true}) 将只创建一个 "NEXT" 类型的关系。

同样,对于 Cypher 等效操作,将 CREATE 更改为 MERGE 将产生与 avoidDuplicates: true} 相同的效果。

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