Функция фильтра Neo4j больше не поддерживается - PullRequest
0 голосов
/ 26 апреля 2020

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

MATCH (cu:Customer{name: "myCustomer"})-[pu:PURCHASED]->(o:Order)-[*]->(cat:Category)
MATCH (b:Book)-[:IS_a]->(cat)
WITH COLLECT(DISTINCT pu.ISBN) AS purchasedbooks,COLLECT(DISTINCT b.ISBN) AS booksFromTheSameCategory
RETURN FILTER( n IN booksFromTheSameCategory WHERE NOT n IN purchasedbooks ) as listC

1 Ответ

2 голосов
/ 26 апреля 2020

Вы можете использовать синтаксис списка вместо устаревшей функции filter:

MATCH (cu:Customer{name: "myCustomer"})-[pu:PURCHASED]->(o:Order)-[*]->(cat:Category)<-[:IS_a]-(b:Book)
WITH COLLECT(DISTINCT pu.ISBN) AS purchasedbooks, COLLECT(DISTINCT b.ISBN) AS booksFromTheSameCategory
RETURN [n IN booksFromTheSameCategory WHERE NOT n IN purchasedbooks] as listC

Документацию по изменению синтаксиса Cypher можно найти на этой странице. .

...