apoc.nodes.relationships.exist

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

语法

apoc.nodes.relationships.exist(nodes [, types ])

描述

返回一个 BOOLEAN 值,用于判断给定的 NODE 值是否具有指定的 RELATIONSHIP 值。

参数

名称

类型

描述

节点

ANY

用于检查指定关系类型的节点。

types

STRING

要在给定节点上检查的关系类型。关系类型使用 APOC 的关系方向模式语法表示;[<]RELATIONSHIP_TYPE1[>]|[<]RELATIONSHIP_TYPE2[>]|…​。默认值为:``。

返回

LIST<ANY>

输出参数

名称 类型 描述

LIST<MAP>

一个 LIST<MAP>,其中包含键为 "node" → NODE 和 "exists" → MAPMAP 值;"exists" 映射中包含每个类型 → BOOLEANSTRING 值,用于指示其存在性。

用法示例

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

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.relationships.exist(people, "KNOWS>|FOLLOWS") AS output
RETURN output;
结果
输出

{node: (:Person {name: "Michael"}), exists: {KNOWS>: TRUE, FOLLOWS: TRUE}}

{node: (:Person {name: "Person30"}), exists: {KNOWS>: FALSE, FOLLOWS: TRUE}}

{node: (:Person {name: "Person60"}), exists: {KNOWS>: FALSE, FOLLOWS: FALSE}}