如何在Neo4j电影数据库中获取指定电影演员的角色名?
解决Neo4j电影库中获取演员角色的问题
嘿,我知道你碰到的这个小坑了!在Neo4j官方的电影示例数据库里,演员的角色信息根本不在Actor节点上,而是存在于连接Movie和Actor的ACTS_IN关系属性里!
你之前的查询语句MATCH (wallstreet:Movie { title: 'Wall Street' })<-[:ACTS_IN]-(actor) RETURN actor.roles返回null,就是因为你在尝试从Actor节点读取roles属性,但这个属性压根不属于节点,而是属于那条关联两者的ACTS_IN边。
正确的查询语句
你需要给ACTS_IN关系起个别名,然后访问这个关系的roles属性:
MATCH (wallstreet:Movie { title: 'Wall Street' })<-[acted_in:ACTS_IN]-(actor) RETURN actor.name, acted_in.roles
这个语句会返回《华尔街》里每个演员的名字,以及他们对应的角色名。如果只需要角色信息,也可以简化成:
MATCH (wallstreet:Movie { title: 'Wall Street' })<-[acted_in:ACTS_IN]-(actor) RETURN acted_in.roles
小技巧:确认属性位置
要是你不确定属性到底在节点还是关系上,可以用RETURN *查看所有匹配到的元素,这样就能直观看到roles属于哪个部分了:
MATCH (wallstreet:Movie { title: 'Wall Street' })<-[:ACTS_IN]-(actor) RETURN *
内容的提问来源于stack exchange,提问作者Mobi Zaman
相关产品推荐
相关产品推荐

