返回类型I与其他n个类型s的节点至少有n个关系



我有两种类型的节点:投资者和创业公司

我想创建一个查询,而用户可以给出,说,3作为输入,只有投资者与至少3个不同的创业公司的关系将返回。此解决方案将用于neo4j Bloom

我的尝试:

MATCH p = (s1:Startup)<-[r:INVESTOR_INVESTED_IN]-(i:Investor)-[r2:INVESTOR_INVESTED_IN]->(s2:Startup)
WHERE id(s1) in $nodes AND id(s2) in $nodes AND s1<>s2
RETURN p

通过我上面的尝试,如何从最小2改变为最小4并不明显

找到所有投资过一家初创公司的投资者,并检查集合中初创公司的数量。如果你想返回路径,那么你需要像下面这样返回路径:

MATCH (i:Investor)-[:INVESTOR_INVESTED_IN]-> (s:Startup)
WITH i, collect(distinct s) as startup WHERE size(startup) >= 3
MATCH p = (i)-[:INVESTOR_INVESTED_IN]-> (:Startup) 
RETURN p 

但如果您只对显示投资者感兴趣,查询将更简单,如下所示:

MATCH (i:Investor)-[:INVESTOR_INVESTED_IN]-> (s:Startup)
WITH i, collect(distinct s) as startup WHERE size(startup) >= 3
RETURN i

最新更新