首页 > 解决方案 > 如何将多个列表合并为一个列表

问题描述

要查找节点的邻居,我使用如下查询语句

MATCH (self:Person {id:"13619240353"})-[r*1..2]-(N) return collect(r)

然后我得到这样的结果 在此处输入图像描述

这里 r 是一个关系列表,因此 collect(r) 是一个列表列表,但我希望返回一个关系列表,包括 collect(r) 中的所有关系,并且没有重复项。如何编写查询?

标签: neo4jcypher

解决方案


由于模式的可变长度,命名结果是一个列表,那么你需要UNWIND它并使用它DISTINCT来删除重复项:

MATCH (self:Person {id:"13619240353"})-[rs*1..2]-(N) 
UNWIND rs AS r
RETURN collect(DISTINCT r)

推荐阅读