如何通过rel |类型将节点类型合并到单个节点类型?

时间:2017-01-23 04:09:37

标签: neo4j cypher

上下文: 我正在研究一个校友项目,以了解捐赠和参与之间的区别。 (参与=出现,参加活动,志愿服务等)工作的价值将来自对行为合作伙伴的理解所获得的洞察力。

在下面的查询中,我有效地带回了“最大的消费者”,但是我想列出(n)校友的名字和(a,b)礼物。有30种礼物类型适合(a,b)。

请让我知道你的想法...... Innosoljim

>//Who are Alumni that give the most?
>>MATCH (n:Alumni)-[r:Supportfin]->(b)
>>MATCH (n:Alumni)-[t:Gavefin]->(a)
>>RETURN n,b,a LIMIT 1500

感谢您的回答 - 让我重申目标以澄清:我正在努力巩固(进入n.Alumni)许多关系 - [给|支持] - >到独特的节点(各种礼物),以便我可以获得校友活动的报告(给予,支持,通过n.name。图表模型将校友节点置于每个独特行为的中心(给予,支持,分级,地址) ,学位,希腊生活等....)这有帮助吗?

MATCH (a:Alumni)-[r:Supportfin|Gavefin]->(gift)
RETURN a.name, collect(gift)
ORDER BY (a)-[r:Supportfin|Gavefin]-> count(*) DESC

这样的事可能虽然这不起作用(syntaxerror)

1 个答案:

答案 0 :(得分:0)

将校友与两种关系类型的礼物相匹配并返回:

MATCH (a:Alumni)-[r:r:Supportfin|Gavefin]->(gift)
RETURN a.name, collect(gift)

或者按不同的关系类型拆分:

MATCH (a:Alumni)
OPTIONAL MATCH (s)-[:Supportfin]->(sup_gift)
OPTIONAL MATCH (a)-[:Gavefin]->(gave_gift)
RETURN a.name, collect(DISTINCT sup_gift), collect(DISTINCT gave_gift)

如果没有正确描述您的图表模型和问题,则很难回答这个问题。

相关问题