apoc.neighbors.athop.count

详细信息

语法

apoc.neighbors.athop.count(node [, relTypes, distance ]) :: (value)

描述

返回在指定距离处,通过给定 RELATIONSHIP(关系)类型连接的所有 NODE(节点)值的数量。

输入参数

名称

类型

描述

节点

NODE

算法的起始节点。

关系类型

STRING

要追踪的关系类型列表。关系类型使用 APOC 的关系方向模式语法表示;[<]RELATIONSHIP_TYPE1[>]|[<]RELATIONSHIP_TYPE2[>]|…​。默认值为:``。

距离

INTEGER(整数)

要进行的跳转次数(跳数)。默认值为:1

返回参数

名称

类型

描述

INTEGER(整数)

给定跳数距离处的相邻节点总数。

使用示例

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

MERGE (mark:Person {name: "Mark"})
MERGE (praveena:Person {name: "Praveena"})
MERGE (joe:Person {name: "Joe"})
MERGE (lju:Person {name: "Lju"})
MERGE (michael:Person {name: "Michael"})
MERGE (emil:Person {name: "Emil"})
MERGE (ryan:Person {name: "Ryan"})

MERGE (ryan)-[:FOLLOWS]->(joe)
MERGE (joe)-[:FOLLOWS]->(mark)
MERGE (mark)-[:FOLLOWS]->(emil)
MERGE (michael)-[:KNOWS]-(emil)
MERGE (michael)-[:KNOWS]-(lju)
MERGE (michael)-[:KNOWS]-(praveena)
MERGE (emil)-[:FOLLOWS]->(joe)
MERGE (praveena)-[:FOLLOWS]->(joe)

此过程计算节点在特定跳数下的邻域。

以下示例返回 Emil 在 2 跳距离内 KNOWS(认识)的人数:

MATCH (p:Person {name: "Emil"})
CALL apoc.neighbors.athop.count(p, "KNOWS", 2)
YIELD value
RETURN value
结果

2

正如预期,我们得到了 2 个人的计数,这些人分别是 Praveena 和 Lju!

如果我们也想知道邻域中具体包含哪些节点,我们也可以这样做。请参阅 apoc.neighbors.athop