You need to enable JavaScript to run this app. Neo4j实现逐行输出演员及共同参演公共电影列表的方法
优惠活动
大模型
产品
解决方案
定价
更多

Neo4j实现逐行输出演员及共同参演公共电影列表的方法

Neo4j多演员共同参演电影逐行输出查询方案

实现逻辑:先计算所有指定演员共同参演的公共电影列表,再将输入的演员列表展开,每行对应一个演员搭配相同的公共电影列表输出。

原生Cypher实现示例(无需安装插件)

// 替换为你需要查询的目标演员列表
WITH ['Keanu Reeves', 'Hugo Weaving', 'Emil Eifrem'] AS targetActors
// 匹配目标演员的参演电影
MATCH (a:Person)-[:ACTED_IN]->(m:Movie)
WHERE a.name IN targetActors
// 统计符合条件的演员总数,同时收集所有参演的电影名
WITH targetActors, collect(m.title) AS allMovies, count(DISTINCT a) AS totalActorNum
// 筛选出出现次数等于演员总数的电影,即所有演员共同参演的公共电影
WITH targetActors, [movie IN apoc.coll.toSet(allMovies) WHERE size([m IN allMovies WHERE m = movie]) = totalActorNum] AS commonMovies
// 展开演员列表逐行输出
UNWIND targetActors AS actorName
RETURN actorName, commonMovies

APOC插件实现示例(更简洁)

// 替换为你需要查询的目标演员列表
WITH ['Keanu Reeves', 'Hugo Weaving', 'Emil Eifrem'] AS targetActors
// 匹配目标演员的参演电影,按演员分组收集各自的参演电影列表
MATCH (a:Person)-[:ACTED_IN]->(m:Movie)
WHERE a.name IN targetActors
WITH targetActors, collect(DISTINCT m.title) AS actorMovieList
// 计算所有演员参演列表的交集,得到公共电影
WITH targetActors, apoc.coll.intersectionAll(actorMovieList) AS commonMovies
// 展开演员列表逐行输出
UNWIND targetActors AS actorName
RETURN actorName, commonMovies

查询返回结果和要求的格式完全一致,每行的公共电影列表内容相同。

内容的提问来源于stack exchange,提问作者Pavan Kumar Kattamuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 22:36:01