Graph 具有两个关系的Neo4j分组

Graph 具有两个关系的Neo4j分组,graph,neo4j,cypher,Graph,Neo4j,Cypher,我有一个图表,它将表示像这样的节点的层次结构。 假设这一个表示完整的层次结构,但我还需要通过在不同级别分组来创建中间结果 假设我正在请求节点A的数据。我希望在最近的组关系处重新组合节点。我想得到这样的东西: 基本上,用户可以将节点与组关联,我需要以方便的方式表示数据,以显示组织结构图 我不知道从哪里开始得到最佳解决方案 这是我的neo4js数据库: CREATE (a:Node { name: 'a' }), (b:Node { name: 'b' }), (c:Node { nam

我有一个图表,它将表示像这样的节点的层次结构。

假设这一个表示完整的层次结构,但我还需要通过在不同级别分组来创建中间结果

假设我正在请求节点A的数据。我希望在最近的组关系处重新组合节点。我想得到这样的东西:

基本上,用户可以将节点与组关联,我需要以方便的方式表示数据,以显示组织结构图

我不知道从哪里开始得到最佳解决方案

这是我的neo4js数据库:

CREATE (a:Node { name: 'a' }), (b:Node { name: 'b' }), 
   (c:Node { name: 'c' }), (d:Node { name: 'd' }),
   (e:Node { name: 'e' }), (f:Node { name: 'f' }), 
   (g:Node { name: 'g' }), (h:Node { name: 'h' }),

   (g1:Group { name: 'group1'}), 
   (g2:Group { name: 'group2'}),
   (g3:Group { name: 'group3'}),

   (a)-[:child]->(b), 
   (a)-[:child]->(c),
   (a)-[:child]->(d),
   (b)-[:child]->(e),
   (c)-[:child]->(f),
   (c)-[:child]->(g),
   (c)-[:child]->(h),

   (b)-[:belongsTo]->(g1),
   (c)-[:belongsTo]->(g2),
   (g)-[:belongsTo]->(g3),
   (h)-[:belongsTo]->(g3);

如果您想查看任何给定组中包含多少个组织,这很简单:

MATCH (g:Group)<-[:belongsTo]-(x:Node)
RETURN g.name, count(x);

MATCH(g:Group)如果您想查看任何给定组中包含多少个组织,这很简单:

MATCH (g:Group)<-[:belongsTo]-(x:Node)
RETURN g.name, count(x);
匹配(g:组)