Cypher查询返回匹配节点和可选关系

我试图find返回所有匹配的节点和他们可能有的任何关系的最优方法?

这是我的问题:

我需要返回创build项目的所有用户,所以

match (u : User)-[r:CREATE]->(p: Project) return u, collect(p) 

很简单,但用户也可以有其他的关系,我想包括他们或可选的检查(返回true / false)

例如用户可能有关系build议,我不想限制它,但如果检查它是否存在一个什么节点?

理想情况下,我的回报表如下所示:

USER1 – PROJECT(S) – 推荐用户

USER2 – PROJECT(S) – NULL(无人推荐)

可选匹配将匹配模式,如果不存在则返回null

 MATCH (u : User)-[r:CREATE]->(p: Project) OPTIONAL MATCH (u)-[:RECOMMEND]->(rec) RETURN u, collect(p), collect(rec)