apoc.nodes.connected

此函数在本地(on-premise)实例中受限。要使用它,必须解除限制。详情请参阅 安装 → 加载并解除限制
详细信息

语法

apoc.nodes.connected(startNode, endNode [, types ])

描述

当给定的 NODE(节点)直接连接到另一个给定的 NODE 时,返回 true。此函数针对稠密节点进行了优化。

参数

名称

类型

描述

startNode

NODE

要检查其是否与第二个节点直接相连的节点。

endNode

NODE

要检查其是否与第一个节点直接相连的节点。

types

STRING

如果不为空,则提供节点之间可连接的关系类型允许列表。关系类型使用 APOC 的关系方向模式语法表示;[<]RELATIONSHIP_TYPE1[>]|[<]RELATIONSHIP_TYPE2[>]|…​。默认值为:``。

返回

布尔值 (BOOLEAN)

用法示例

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

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.nodes.connected
MATCH (p1:Person {name: "Michael"})
MATCH (p2:Person {name: "Person60"})
RETURN apoc.nodes.connected(p1, p2) AS output;
使用 Cypher 的 EXISTS 子查询
RETURN EXISTS { (p1:Person {name: "Michael"})--(p2:Person {name: "Person60"}) } AS output
结果
输出

true

apoc.nodes.connected
MATCH (p1:Person {name: "Michael"})
MATCH (p2:Person {name: "Person60"})
RETURN apoc.nodes.connected(p1, p2, "FOLLOWS") AS output
使用 Cypher 的 EXISTS 子查询
RETURN EXISTS { (p1:Person {name: "Michael"})-[:FOLLOWS]-(p2:Person {name: "Person60"}) } AS output
结果
输出

false

apoc.nodes.connected
MATCH (p1:Person {name: "Michael"})
MATCH (p2:Person {name: "Person60"})
RETURN apoc.nodes.connected(p1, p2, "FOLLOWS>|KNOWS") AS output
使用 Cypher 的 EXISTS 子查询
MATCH (p1:Person {name: "Michael"})
MATCH (p2:Person {name: "Person60"})
RETURN EXISTS { (p1)-[:FOLLOWS]->(p2) } OR EXISTS { (p1)-[:KNOWS]-(p2) } AS output
结果
输出

true

apoc.nodes.connected
MATCH (p1:Person {name: "Michael"})
MATCH (p2:Person {name: "Person30"})
RETURN apoc.nodes.connected(p1, p2, "FOLLOWS>") AS output
使用 Cypher 的 EXISTS 子查询
MATCH (p1:Person {name: "Michael"})
MATCH (p2:Person {name: "Person30"})
RETURN EXISTS { (p1)-[:FOLLOWS]->(p2) } AS output
结果
输出

true