我的节点Xn与节点Yn有关系。现在我想查询所有节点Xn与节点Yn的关系
我的查询如下所示:
match n=(:X)-[:RELATIONSHIP1|:RELATIONSHIP2]->(:Y) return 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实现这个目标?
答案 0 :(得分:3)
您需要使用collect
函数进行聚合:
match (nx:X)-[:RELATIONSHIP1|:RELATIONSHIP2]->(ny:Y)
return nx as X,
collect(distinct ny) as Y