Neo4j 如何使用嵌套查询获取数据

Neo4j 如何使用嵌套查询获取数据,neo4j,cypher,Neo4j,Cypher,我试图根据用户对任何主题的兴趣向他推荐测验。只有用户未玩过且感兴趣的测验才会显示 我得到了所有的测验清单和与我有关系的人,但问题是我也得到了那些我已经参加过的测验。。。 我不喜欢我建议的那些已经参加过的测验 match (n:User {username :'rahulkumar6611@gmail.com' })-[r:INTRESTED_IN]->(s:Subject) with collect(s) as inlist UNWIND inlist as list match (q:Q

我试图根据用户对任何主题的兴趣向他推荐测验。只有用户未玩过且感兴趣的测验才会显示

我得到了所有的测验清单和与我有关系的人,但问题是我也得到了那些我已经参加过的测验。。。 我不喜欢我建议的那些已经参加过的测验

match (n:User {username :'rahulkumar6611@gmail.com' })-[r:INTRESTED_IN]->(s:Subject)
with collect(s) as inlist
UNWIND inlist as list
match (q:Quiz)-[p:ABOUT]-(k:Subject)
where k.subject in list.subject
match (uk:User)-[pl:PLAYED]-(mk:Quiz)
where mk.quizCode = q.quizCode
return uk, mk
期望:

HashMap<Quiz,ArrayList<User>>
我不能正确地使用where not子句来过滤掉它


这将返回指定的
用户可能感兴趣但从未“玩过”的问答:

MATCH(u:User{username:'rahulkumar6611@gmail.com'})-[:播放]->(pq:测验)
使用u,收集(pq)作为播放的问答
匹配(u)-[:感兴趣]->(:主题)
match (n:User {username :'rahulkumar6611@gmail.com' })-[r:INTRESTED_IN] ->(s:Subject) with collect(s) as inlist UNWIND inlist as list match (q:Quiz)-[p:ABOUT]-(k:Subject) where k.subject in list.subject match (uk:User)-[pl:PLAYED]-(mk:Quiz) where mk.quizCode = q.quizCode as quizCodelist UNWIND qLIST as listQ WHERE NOT exists((me)-[:PLAYED]-(quiz)) AND me.username = 'rahulkumar6611@gmail.com' return uk, mk  
MATCH (u:User {username :'rahulkumar6611@gmail.com' })-[:PLAYED]->(pq:Quiz)
WITH u, COLLECT(pq) AS playedQuizes
MATCH (u)-[:INTERESTED_IN]->(:Subject)<-[:ABOUT]-(q:Quiz)
WHERE NOT q IN playedQuizes
RETURN u, q