不再支持Neo4j过滤器功能

时间:2020-04-26 19:30:29

标签: filter neo4j cypher

我想比较两个列表,以便在第一个列表中找到不在第二个列表中的值并返回它们。在此先感谢大家 代码返回:不再支持过滤器 是否有其他替代方法

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 个答案:

答案 0 :(得分:3)

您可以使用list comprehension语法代替过时的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

您可以在this page上查看Cypher语法更改文档。