apoc.nodes.group
| 此过程返回只能由其他 APOC 过程访问的虚拟节点。欲了解更多信息,请参阅 虚拟节点与关系 (图投影)。 |
|
此过程不被认为是多线程安全运行的。因此,并行运行时不支持此过程。欲了解更多信息,请参阅 Cypher 手册 → 并行运行时。 |
语法 |
|
||
描述 |
允许根据给定属性对 |
||
输入参数 |
名称 |
类型 |
描述 |
|
|
要聚合的节点标签列表。使用 |
|
|
|
用于对节点进行分组的属性键。 |
|
|
|
第一个映射指定了要聚合的节点属性及其相应的聚合函数,而第二个映射指定了要聚合的关系属性。默认值为: |
|
|
|
|
|
返回参数 |
名称 |
类型 |
描述 |
|
|
以虚拟节点表示的分组节点列表。 |
|
|
|
以虚拟关系表示的分组关系列表。 |
|
|
|
分组节点。 |
|
|
|
分组关系。 |
|
使用示例
本节中的示例基于以下示例图
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}) |