Я играл с набором данных Movie Graph, и я хотел бы найти кратчайший путь между двумя актерами, но пропуская узлы фильма (узлы могут иметь метку Person или Movie).
Этот запрос возвращает кратчайший путь от Кевина Бэкона к Мег Райан:
MATCH p=shortestPath((bacon:Person {name:"Kevin Bacon"})-[*]-(meg:Person {name:"Meg Ryan"}))
RETURN p
Теперь я хочу исключить узлы фильма, но как?Это то, что я придумал, но, к сожалению, он не дает никаких результатов:
MATCH path=shortestPath( (bacon:Person {name:"Kevin Bacon"})-[*]-(meg:Person {name:"Meg Ryan"}) )
WITH nodes(path) AS ns
WHERE
ALL(node IN ns
WHERE NOT node:Movie)
RETURN ns AS path_without_movies;
Запрос выполняется, но только с таким результатом:
«(без изменений, без записей)».
Есть идеи, как мне улучшить запрос?