首页 > 解决方案 > Neo4J 查询检索数据

问题描述

我正在尝试在 Neo4J 中创建一个查询(这是我正在学习的东西),但我很挣扎。所以我正在使用提供的 Neo4J 沙盒和电影数据集(:play movie-graph)。这就是我要找的...

  1. 创建一个查询以检索在电影发行时与 55 岁或以上演员合作的所有电影导演
  2. 显示这些演员的演员、作家和电影的网络

这就是我所拥有的,但我确信这是完全错误的。任何帮助,将不胜感激!

MATCH (directors)<-[:DIRECTED]-(directors)-[:ACTED_IN]->(actors)-(actors: Age) WHERE actors.age >= 55 RETURN directors.name

标签: neo4jcypher

解决方案


这是一个查询,它将返回所有导演过 1970 年之前出生的演员的电影的导演。将年份更改为您需要的任何年份以满足您的标准。

MATCH (q)-[r:DIRECTED]->(k)<-[:ACTED_IN]-(s) where s.born<1970  RETURN DISTINCT q;

给你几点建议,

. 了解 neo4j 节点和关系。在您的查询中,您写了(导演)、(演员)等。

我在电影数据集中找不到这些实体。它表明您需要了解这些概念以及这些概念在查询中的表示方式。浏览器控制台清楚地显示了这些实体。

. 了解关系方向以及它们在查询中的表示方式。

. 对上面的查询进行小修改,看看结果如何变化。例如,返回 s 而不是 q。删除 DISTINCT 子句等。

. 最后创建您自己的自定义数据集并尝试查询。

祝你好运。


推荐阅读