2013-09-26 47 views
1

我有以下问题:我想回到一个批评家已经审查了所有独特的瓶子,如果任何由他们审查在指定的商店目前销售。 的问题是,我得到重复的两个集合,虽然我可以单独进行筛选,我无法过滤加入结果:如何返回Cypher中的集合联盟的独特元素?

START shop=node:shops('SHOP_ID:...') 
MATCH (shop)-[:SELLS]->(bottle)<-[:REVIEWED]-(critic)-[:REVIEWED]->(other_bottle) 
WITH critic, COLLECT(DISTINCT(bottle))) + COLLECT(DISTINCT(other_bottle))) as all_bottles 
RETURN wine_critic, all_bottles 

回答

3

尝试:

START shop=node:shops('SHOP_ID:...') 
MATCH (shop)-[:SELLS]->(bottle)<-[:REVIEWED]-(critic) 
WITH critic 
MATCH (critic)-[:REVIEWED]->(other_bottle) 
RETURN critic, COLLECT(other_bottle) as all_bottles 
+1

一场比赛拿到路径,另一个获取数据。凉! – Nikos

+1

这很好,谢谢!我试图得到它通过 START N =节点(50)中,b =节点(137)MATCH P = N- [R * 1..2] -B RETURN节点(p)的工作; 找到共同的邻居,它是这样,但它返回它作为收藏品,和你的示例返回的节点。 谢谢! –

相关问题