apoc.node.relationship.types

详细信息

语法

apoc.node.relationship.types(node [, relTypes ])

描述

返回给定 NODE(节点)的所有不同 RELATIONSHIP(关系)类型的 LIST<STRING>(字符串列表)。

参数

名称

类型

描述

节点

NODE

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

关系类型

STRING

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

返回

LIST<ANY>

用法示例

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

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

apoc.node.relationship.types
MATCH (p1:Person {name: "Person30"})
RETURN apoc.node.relationship.types(p1) AS output;
使用 Cypher 的 COLLECT {} 和 type()
MATCH (p1:Person {name: "Person30"})
RETURN COLLECT {
    MATCH (p1)-[r]-()
    RETURN DISTINCT type(r)
} AS output
结果
输出

["KNOWS", "FOLLOWS"]

apoc.node.relationship.types
MATCH (p1:Person {name: "Person30"})
RETURN apoc.node.relationship.types(p1, "FOLLOWS") AS output;
使用 Cypher 的 COLLECT {} 和 type()
MATCH (p1:Person {name: "Person30"})
RETURN COLLECT {
    MATCH (p1)-[r:FOLLOWS]-()
    RETURN DISTINCT type(r)
} AS output
结果
输出

["FOLLOWS"]