【发布时间】:2017-10-31 17:58:02
【问题描述】:
查询Cloud Atlast中的演员所出演的所有电影的标题,对于每个电影标题,还返回这些演员的姓名
MATCH (m:Movie {title:"Cloud Atlast"})<-[:ACTED_IN]-(p:Person)
RETURN p.name, m.title
请告诉我我错过了什么
【问题讨论】:
-
您在标题中有错字 - 电影的名称是
Cloud Atlas。
查询Cloud Atlast中的演员所出演的所有电影的标题,对于每个电影标题,还返回这些演员的姓名
MATCH (m:Movie {title:"Cloud Atlast"})<-[:ACTED_IN]-(p:Person)
RETURN p.name, m.title
请告诉我我错过了什么
【问题讨论】:
Cloud Atlas。
听起来你只需要扩展你的模式并聚合每部电影的演员:
MATCH (:Movie {title:"Cloud Atlas"})<-[:ACTED_IN]-(p)-[:ACTED_IN]->(m)
RETURN m.title as title, collect(p.name) as actors
当您使用电影图时,我们可以假设 :ACTED_IN 关系仅将 :Person 节点连接到 :Movie 节点,因此我们可以从路径的后面部分删除标签。
【讨论】:
我想这就是你想要的:
MATCH (:Movie {title:"Cloud Atlas"})<-[:ACTED_IN]-(p)-[:ACTED_IN]->(m)<-[:ACTED_IN]-(others)
RETURN m.title as title, collect(others.name) as actors
【讨论】: