У меня есть набор Author
узлов. Узел Author
является единственным родителем нескольких узлов Book
.
Шаг: 1) Я хочу отфильтровать авторов по имени. (Например, author.name СОДЕРЖИТ 'e')
Шаг: 2) Получив отфильтрованный список авторов, я хочу отфильтровать каждую из книг этих авторов по имени. (Например, book.name СОДЕРЖИТ 'the')
Желаемый результат: (Давайте представим, Оскар Уайльд не написал ни одной книги с 'the')
Моя проблема в том, что после шага (2) все авторы, у которых нет книги со знаком «но», но DO имеют в своем имени «е»: отброшено - Как (в этом примере) Оскар Уайльд
Я пытался:
MATCH (author:Author) WHERE (author.name CONTAINS 'e')
WITH author
MATCH (book)<-[:WROTE]-(author) WHERE (book.name CONTAINS 'the')
RETURN author, book
и
MATCH (author:Author) WHERE (author.name CONTAINS 'e')
WITH author
MATCH (book) WHERE (book.name CONTAINS 'the') AND ((book)<--(author))
RETURN author, book;
Я бы использовал подзапрос WHERE EXISTS { MATCH ()...
, но его нет в Neo4j 4.0, и я использую 3.5