如何在 neo4j cypher 中获取唯一列表?

tim*_*tim 3 neo4j cypher

例如,我有一个列表[1,1,2]

我期望的结果是[1,2]

我尝试过什么

return [distinct x in [1,1,2]]
Run Code Online (Sandbox Code Playgroud)

Distinct不起作用,这会引发错误。

有些东西可能有帮助

我可以在 neo4j 中使用任何列表函数来实现此目的吗?

Jas*_*ues 6

您可以使用 APOC 库的apoc.coll.toSet([list])功能。

这些函数记录在此处。该手册还包含有关如何安装 APOC 插件的详细信息。

编辑:没有APOC

set这是从CYPHER 中的a 返回 a 的一种方法list- 展开列表,然后仅从中收集不同的值:

unwind [1, 1, 2, 3, 3, 4, 5] as nums
with distinct nums return collect(nums);
Run Code Online (Sandbox Code Playgroud)

或者

unwind [1, 1, 2, 3, 3, 4, 5] as nums
return collect(distinct nums);
Run Code Online (Sandbox Code Playgroud)