apoc.nodes.relationship.types

在 APOC 2025.07 版本发布之前,此函数在本地(on-premise)实例上受到限制。若要在旧版本上使用它,必须解除限制。详情请参阅 安装 → 加载并解除限制
详细信息

语法

apoc.nodes.relationship.types(nodes [, types ])

描述

返回给定 LIST<NODE> 值中不重复的 RELATIONSHIP 类型列表 LIST<STRING>

参数

名称

类型

描述

节点

ANY

要返回其连接关系类型的节点。

types

STRING

如果不为空,则提供一个允许返回的关系类型白名单。关系类型使用 APOC 的 rel-direction-pattern 语法表示;[<]RELATIONSHIP_TYPE1[>]|[<]RELATIONSHIP_TYPE2[>]|…​。默认值为:``。

返回

LIST<ANY>

输出参数

名称 类型 描述

LIST<MAP>

一个 LIST<MAP>,其中包含 MAP 值,键为 "node" → NODE,以及 "types" → 包含各类型 STRING 值的 LIST<STRING>

使用示例

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

MERGE (michael:Person {name: "Michael"})
WITH michael
CALL {
    WITH michael
    UNWIND range(0, 100) AS id
    MERGE (p:Person {name: "Person" + id})
    MERGE (michael)-[:KNOWS]-(p)
    RETURN count(*) AS friends
}

CALL {
    WITH michael
    UNWIND range(0, 50) AS id
    MERGE (p:Person {name: "Person" + id})
    MERGE (michael)-[:FOLLOWS]-(p)
    RETURN count(*) AS follows
}

RETURN friends, follows;
结果
friends follows

101

51

MATCH (p1:Person)
WHERE p1.name IN ["Michael", "Person30", "Person60"]
WITH collect(p1) AS people
UNWIND apoc.nodes.relationship.types(people, "KNOWS>|FOLLOWS") AS output
RETURN output;
结果
输出

{node: (:Person {name: "Michael"}), types: ["KNOWS", "FOLLOWS"]}

{node: (:Person {name: "Person30"}), types: ["FOLLOWS"]}

{node: (:Person {name: "Person60"}), types: []}