我有导演过电影的人。电影是有类型的。我想得到一个导演的前5部电影,按上映日期排序,每部电影的前2种类型按名称排序。
MATCH(d {name: "Steven Spielberg"}) -- (f:Film)
WITH f
ORDER BY f.release_date DESC LIMIT 5
MATCH (f) -- (g:Genre)
RETURN f,g这给了我史蒂芬·斯皮尔伯格的前5部电影,按release_date排序。现在,对于每部电影,我如何获得按名称排序的前2种类型?
发布于 2017-06-14 03:00:37
这里有一篇关于limiting match results per row的知识库文章,将会对你有所帮助。
简而言之,您可以使用APOC过程,或者需要收集()结果,然后获取集合中感兴趣的片段。
发布于 2017-06-13 16:21:05
您的问题似乎是How to limit a subquery in cypher?的副本。
然而,其中接受的自我回答只是对期望结果的近似值。在您的示例中,它应该类似于以下内容:
MATCH(d {name: "Steven Spielberg"}) -- (f:Film)
WITH f
MATCH (f) -- (g:Genre)
WITH f,g ORDER BY g.name
RETURN f,collect(g)[0..2] ORDER BY f.release_date DESC LIMIT 3https://stackoverflow.com/questions/44514500
复制相似问题