我有User,Item和Comment类型的节点。用户可以喜欢一个项目。用户可以发表评论,评论可以POSTED_IN一个项目。
我正在尝试查找由特定用户(或两者)赞成或评论的所有项目。我正在使用的查询是:
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做这件事,但我不知道如何做到这一点。谢谢你的帮助。
答案 0 :(得分:2)
尝试这个
MATCH (u:User {id: 'r1tcX0vxW'})-[:LIKES]->(i:Item)
RETURN i
UNION
MATCH (u)<-[:POSTED_BY]-(:Comment)-[:POSTED_IN]->(i:Item)
RETURN i;