如何根据一个边的Match语句的结果进行下一次边的查询

  • nebula 版本:2.6.2
  • 部署方式:分布式
  • 安装方式:Docker
  • 是否上生产环境:N

目前我需要通过一个边来查询目标点,然后根据目标点的结果进行下一次边的查询
例如:查询所有"科幻”体裁的电影中,用户评分最高的前五部电影及其导演和演员。
现在有
tag:Genre(题材类型)、Movie(电影)、Director(导演)、Actor(演员)、User(用户)
edge:IN_GENRE(类型和电影的关系)、DIRECTED(导演与电影的关系)、ACTED_IN(演员与电影的关系)、RATED(用户与电影的关系)
我想达到的效果类似以下:
MATCH (a:Actor) -[acted:ACTED_IN]-> (m:Movie) <-[r:RATED]- (u:User) WHERE a.name=“Leonardo DiCaprio” RETURN m.title ORDER BY r.rating DESC LIMIT 5 AS mv
通过以上语句查到:所有"科幻”体裁的电影中,用户评分最高的前五部电影
然后根据其结果进行类似以下的查询:
MATCH (m:Movie) -[r:DIRECTED]->(d:Director)" WHERE m.title in mv RETURN d
MATCH (m:Movie) -[ac:ACTED_IN]->(a:Actor)" WHERE m.title in mv RETURN a。
能否将这三个语句组合成一个语句呢

MATCH (a:Actor) -[acted:ACTED_IN]-> (m:Movie) <-[r:RATED]- (u:User), (m) -[r:DIRECTED]->(d:Director) WHERE a.name=“Leonardo DiCaprio” RETURN m.title,d,a ORDER BY r.rating DESC LIMIT 5 AS mv
1 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。