Neo4J Запрос на получение данных - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь создать запрос в Neo4J (это то, что я буквально изучаю, как я go), но я изо всех сил. Поэтому я использую изолированную программную среду Neo4J и предоставленный набор данных mov ie (: play mov ie -graph). Это то, что я ищу ...

  1. Создайте запрос для получения всех режиссеров mov ie, которые работали с актерами 55 лет и старше на момент выпуска mov ie
  2. Показать сети актеров, писателей и фильмов для этих актеров

Это то, что у меня есть, но я уверен, что это совершенно неправильно. Любая помощь будет оценена!

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

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Вот запрос, который вернет всех режиссеров, которые снимали фильмы с актерами, родившимися до 1970 года. Измените год на любой, какой вам нужен, чтобы соответствовать вашим критериям.

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

Несколько предложений для вас

. Понимать neo4j узлы и отношения. В вашем запросе вы написали (режиссеры), (актеры) et c.

Я не нахожу эти объекты в наборе данных mov ie. Это показывает, что вам нужно понять эти понятия и то, как они представлены в запросах. Консоль браузера четко показывает эти объекты.

. Понять направления отношений и то, как они представлены в запросах.

. Измените приведенный выше запрос небольшими способами и посмотрите, как изменится результат. Например, вместо q верните s. Удалить предложение DISTINCT et c.

. Наконец, создайте свой собственный набор данных и опробуйте запросы.

Удачи.

0 голосов
/ 16 марта 2020

Чтобы найти имена режиссеров, которые снимали фильмы с участием актера старше 55 лет на момент выхода фильма ie, вы можете воспользоваться новым экзистенциальным подзапросом в neo4j 4.0 :

MATCH (actor:Person)-[:ACTED_IN]->(m)<-[:WROTE]->(w)
WHERE m.released-actor.born >= 55
RETURN actor, COLLECT(DISTINCT m) AS movies, COLLECT(DISTINCT w) AS writers

Чтобы получить актеров, которым было более 55 лет, когда был выпущен фильм ie, в котором они находились, вместе со списком этих фильмов и списком их авторов:

MATCH (w)-[:WROTE]->(m)<-[:ACTED_IN]-(actor:Person)
WHERE m.released-actor.born >= 55
RETURN actor, COLLECT(DISTINCT m) AS movies, COLLECT(DISTINCT w) AS writers
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...