2017-07-16 10 views
0

ユーザ、アイテム、コメントのタイプのノードがあります。ユーザーはアイテムを好むことができます。ユーザーはコメントをPOSTすることができ、コメントはアイテムにPOSTED_INすることができます。Neo4jのOR条件と一致させる方法

私は、特定のユーザー(またはその両方)がLIKEDまたはコメントしているすべてのアイテムを検索しようとしています。私が使用しているクエリは次のとおりです。

MATCH (u:User {id: 'r1tcX0vxW'}) 
WHERE (u)-[:LIKES]->(i:Item) 
OR 
(comment:Comment)-[:POSTED_BY]->(u) AND (i:Item)<-[:POSTED_IN]-(comment) 
RETURN i; 

ただし、このクエリには構文エラーがあります。

私はこれをOPTIONAL MATCHで行うことも考えましたが、それを達成する方法がわかりません。ご協力いただきありがとうございます。

答えて

2

この1

MATCH (u:User {id: 'r1tcX0vxW'})-[:LIKES]->(i:Item) 
RETURN i 
UNION 
MATCH (u)<-[:POSTED_BY]-(:Comment)-[:POSTED_IN]->(i:Item) 
RETURN i; 
を試してみてください