我的图表中有一堆Foo
个对象,它们可能有0到n个相关的Bar
个对象。 Bar
个对象有一个我想要聚合的属性baz
。以下是我的开始:
MATCH (f:Foo)--(b:Bar) RETURN f, COLLECT(b.baz)
我正在尝试获得如下所示的输出:
===============================
| f | COLLECT(b.baz) |
-------------------------------
| Node(1..) | ["1", "2", "3"] |
| Node(2..) | ["4", "5"] |
===============================
相反,我得到的是这样的:
===============================
| f | COLLECT(b.baz) |
-------------------------------
| Node(1..) | ["1"] |
| Node(1..) | ["2"] |
| etc... |
===============================
有关我做错的任何见解?
答案 0 :(得分:2)
您可以创建示例数据集吗? 对于此数据集,您的查询可以正常工作。
CREATE
(n1:Foo {name: '1'}),
(a:Bar {name: 'a', baz: 1}),
(b:Bar {name: 'b', baz: 2}),
(n1)-[:REL]->(a),
(n1)-[:REL]->(b)
您的查询返回以下内容:
MATCH (f:Foo)--(b:Bar)
RETURN f, COLLECT(b.baz)
╒═════════╤══════════════╕
│f │COLLECT(b.baz)│
╞═════════╪══════════════╡
│{name: 1}│[1, 2] │
└─────────┴──────────────┘