Neo4j 将字段值分组到数组中

Neo4j 将字段值分组到数组中,neo4j,cypher,Neo4j,Cypher,我有一个节点Xn与节点Yn有关系的图。现在我想查询所有节点Xn及其与节点Yn的关系。 我的查询如下所示: 匹配n=(:X)-[:RELATIONSHIP1 |:RELATIONSHIP2]->(:Y)返回n 结果是: ╒══════════════════════════════╕ │n │ ╞══════════════════════════════╡ │[{name: x1}, {name: y1}] │ ├────────

我有一个节点Xn与节点Yn有关系的图。现在我想查询所有节点Xn及其与节点Yn的关系。
我的查询如下所示:
匹配n=(:X)-[:RELATIONSHIP1 |:RELATIONSHIP2]->(:Y)返回n

结果是:

╒══════════════════════════════╕
│n                             │
╞══════════════════════════════╡
│[{name: x1},     {name: y1}]  │
├──────────────────────────────┤
│[{name: x1},     {name: y2}]  │
├──────────────────────────────┤
│[{name: x1},     {name: y3}]  │
├──────────────────────────────┤
│[{name: x2},     {name: y4}]  │
├──────────────────────────────┤
│[{name: x2},     {name: y5}]  │
├──────────────────────────────┤
│[{name: x2},     {name: y6}]  │
├──────────────────────────────┤
│[{name: x2},     {name: y7}]  │
├──────────────────────────────┤
我将所有节点Xn及其相关的Yn都放在一行中。
但我真正想要的是:

╒══════════════════════════════╕
│n                             │
╞══════════════════════════════╡
│[{name: x1},     [{name: y1}, │
│ {name: y2}, {name: y3}]      │
├──────────────────────────────┤
│[{name: x2},     [{name: y4}, │
│ {name: y2}, {name: y5},      │
│ {nbame: y6}, {name: y7}]     │
├──────────────────────────────┤
在这里,Xn的所有相关节点Yn都加入一个数组,然后分配给相应的Xn。

如何使用Cypher实现这一点?

您需要使用以下函数进行聚合:

match (nx:X)-[:RELATIONSHIP1|:RELATIONSHIP2]->(ny:Y)
return nx as X, 
       collect(distinct ny) as Y

您需要使用以下函数进行聚合:

match (nx:X)-[:RELATIONSHIP1|:RELATIONSHIP2]->(ny:Y)
return nx as X, 
       collect(distinct ny) as Y