Neo4j - список массивов для списка элементов в массивах - PullRequest
0 голосов
/ 30 августа 2018

Я начал изучать neo4j, поэтому я использовал пример фильма db. Один из моих запросов возвратил список массивов, и мне было интересно, как я могу запросить список массивов в виде списка элементов, содержащихся в массивах.

My Cypher Request: (Роль каждого фильма Тома Хэнкса в фильме)

    MATCH (:Person {name:"Tom Hanks"}) -[a:ACTED_IN]-> (:Movie) RETURN a.roles;

Результат:

  • ["Член палаты представителей Чарли Уилсона"]
  • [«Мальчик-герой», «Отец», «Дирижер», «Бродяга», «Скрудж», «Дед Мороз»]
  • ["Джимми Дуган"]
  • ["Чак Ноланд"]
  • ["Джим Ловелл»]
  • ["Пол Эджкомб"]
  • ["Доктор Роберт Лэнгдон"]
  • ["Захри", "Доктор Генри Гуз", "Исаак Сакс", "Дермот Хоггинс"]
  • ["Мистер Уайт"]
  • ["Джо Бэнкс"]
  • ["Сэм Болдуин"]
  • ["Джо Фокс"]

Что я хочу:

  • "Член палаты представителей Чарли Уилсона"
  • "Мальчик-герой"
  • "Отец"
  • "Проводник"
  • "Бродяга"
  • "Скрудж"
  • "Дед Мороз"
  • "Джимми Дуган"
  • "Чак Ноланд"
  • "Джим Ловелл"
  • "Пол Эджкомб"
  • "Доктор Роберт Лэнгдон"
  • "Zachry"
  • "Доктор Генри Гус"
  • "Исаак Сакс"
  • "Дермот Хоггинс"
  • "Мистер Уайт"
  • "Джо Бэнкс"
  • "Сэм Болдуин"
  • "Джо Фокс"

В качестве альтернативы было бы также хорошо, если бы запрос возвращал один большой массив, например:

  • [«Член палаты представителей Чарли Уилсон», «Мальчик-герой», «Отец», «Дирижер», «Бродяга», «Скрудж», «Санта-Клаус», «Джимми Дуган», «Чак Ноланд», «Джим Ловелл» "," Пол Эджкомб "," Доктор Роберт Лэнгдон "," Захри "," Доктор Генри Гуз "," Исаак Сакс "," Дермот Хоггинс "," Мистер Уайт "," Джо Бэнкс "," Сэм Болдуин " , "Джо Фокс"]

Я уже некоторое время искал и не нашел другого решения, кроме как написать пользовательскую хранимую процедуру Java, и я очень надеюсь, что существует простое встроенное решение.

1 Ответ

0 голосов
/ 30 августа 2018

Это должно работать:

MATCH (:Person {name:"Tom Hanks"})-[a:ACTED_IN]->(:Movie)
UNWIND a.roles AS role
RETURN role;
...