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)