Neo4j 将多个列表合并为一个列表,并为每行输出它

Neo4j 将多个列表合并为一个列表,并为每行输出它,neo4j,cypher,Neo4j,Cypher,这个来自文档的示例返回了给定演员列表的commonMovies,所有演员都在其中扮演角色 例如,如何返回演员姓名,而不是只返回普通电影的一行 Keanu Reeves, [Movie1,Movie2,Movie3] Hugo Weaving, [Movie1,Movie2,Movie3] Emil Eifrem, [Movie1,Movie2,Movie3] 对于每一行,公共电影列表都是一样的,在这种情况下是没有意义的,但是我将问题抽象为这样也许,您可以在末尾放松names列表,将名称转换为

这个来自文档的示例返回了给定演员列表的commonMovies,所有演员都在其中扮演角色

例如,如何返回演员姓名,而不是只返回普通电影的一行

Keanu Reeves, [Movie1,Movie2,Movie3]
Hugo Weaving, [Movie1,Movie2,Movie3]
Emil Eifrem, [Movie1,Movie2,Movie3]

对于每一行,公共电影列表都是一样的,在这种情况下是没有意义的,但是我将问题抽象为这样

也许,您可以在末尾放松
names
列表,将名称转换为单独的行。执行此操作时,需要将
名称
传递给每个
WITH
子句

以['Keanu Reeves'、'Hugo Weven'、'Emil Eifrem'作为名称
匹配(p:Person)-[:扮演]->(m:Movie)
其中p.name在names中
名称为p,collect(m)作为MoviesPerator
使用名称,将(moviesPerActor)收集为电影
使用名称,减少(commonMovies=头部(电影),尾部电影(电影)|
apoc.coll.Crossion(commonMovies,movie))作为commonMovies
将名称作为名称展开
返回名称,commonMovies