|| apoc.nodes.group - APOC 核心文档 - Neo4j 文档

apoc.nodes.group

此过程返回只能由其他 APOC 过程访问的虚拟节点。欲了解更多信息,请参阅 虚拟节点与关系 (图投影)

此过程不被认为是多线程安全运行的。因此,并行运行时不支持此过程。欲了解更多信息,请参阅 Cypher 手册 → 并行运行时

详情

语法

apoc.nodes.group(labels, groupByProperties [, aggregations, config ]) :: (nodes, relationships, node, relationship)

描述

允许根据给定属性对 NODE 值进行聚合。此过程返回虚拟 NODE 值。

输入参数

名称

类型

描述

labels

LIST<STRING>

要聚合的节点标签列表。使用 ['*'] 表示应查看所有节点标签。

groupByProperties

LIST<STRING>

用于对节点进行分组的属性键。

aggregations

LIST<MAP>

第一个映射指定了要聚合的节点属性及其相应的聚合函数,而第二个映射指定了要聚合的关系属性。默认值为:[{*=count}, {*=count}]

config

MAP

{ includeRels :: STRING | LIST<STRING> excludeRels :: STRING | LIST<STRING>, orphans = true :: BOOLEAN, selfRels = true :: BOOLEAN, limitNodes = -1 :: INTEGER, limitRels = -1 :: INTEGER, relsPerNode = -1 :: INTEGER, filter :: MAP }。默认值为:{}

返回参数

名称

类型

描述

nodes

LIST<NODE>

以虚拟节点表示的分组节点列表。

relationships

LIST<RELATIONSHIP>

以虚拟关系表示的分组关系列表。

node

NODE

分组节点。

relationship

RELATIONSHIP

分组关系。

使用示例

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

CREATE
 (alice:Person {name:'Alice', gender:'female', age:32, kids:1}),
 (bob:Person   {name:'Bob',   gender:'male',   age:42, kids:3}),
 (eve:Person   {name:'Eve',   gender:'female', age:28, kids:2}),
 (graphs:Forum {name:'Graphs',    members:23}),
 (dbs:Forum    {name:'Databases', members:42}),
 (alice)-[:KNOWS {since:2017}]->(bob),
 (eve)-[:KNOWS   {since:2018}]->(bob),
 (alice)-[:MEMBER_OF]->(graphs),
 (alice)-[:MEMBER_OF]->(dbs),
 (bob)-[:MEMBER_OF]->(dbs),
 (eve)-[:MEMBER_OF]->(graphs);
CALL apoc.nodes.group(
  ['*'],
  ['gender'],
  [{`*`:'count', age:'min'}, {`*`:'count'} ]
)
YIELD relationships
UNWIND relationships as rel
RETURN apoc.rel.startNode(rel) AS start, rel, apoc.rel.endNode(rel) AS end;
结果
start rel end

(:Person {gender: "female", min_age: 28, `count_*`: 2})

[:MEMBER_OF {`count_*`: 3}]

(:Forum {gender: NULL, `count_*`: 2})

(:Person {gender: "female", min_age: 28, `count_*`: 2})

[:KNOWS {`count_*`: 2}]

(:Person {gender: "male", min_age: 42, `count_*`: 1})

(:Person {gender: "female", min_age: 28, `count_*`: 2})

[:KNOWS {`count_*`: 2}]

(:Person {gender: "male", min_age: 42, `count_*`: 1})

(:Person {gender: "male", min_age: 42, `count_*`: 1})

[:MEMBER_OF {`count_*`: 1}]

(:Forum {gender: NULL, `count_*`: 2})

© . This site is unofficial and not affiliated with Neo4j, Inc.