如何在Neo4j中将数组结果展平为一个不同的数组

时间:2016-08-16 14:44:34

标签: arrays neo4j

我尝试使用Neo4j查询将数组属性压缩为一个数组。

Unflattened看起来像这样:

MATCH (Parent)-[:Has]-(c:Child)
RETURN c.myIntArray

我找到了reduce函数

RETURN REDUCE(output = [], s IN c.myIntArray | output + s) AS flat

我正在努力学习语法,我想我需要将所有数组传递给这个函数,上面只传递一行一个。

我的最终目标是生成一个不同的整数数组。

1 个答案:

答案 0 :(得分:0)

在您发布此处时,您会立即找到答案。

我会把它放在这里以防其他人发现它有用。

MATCH (Parent)-[:Has]-(c:Child)
WHERE c.myIntArray IS NOT NULL 
WITH COLLECT(c.myIntArray) AS myInts
WITH REDUCE(output = [], i IN myInts| output + i) AS flat
UNWIND flat AS all
RETURN DISTINCT all

虽然不是很快。