返回具有特定关系的节点

时间:2019-01-11 11:59:35

标签: neo4j cypher

我有一个药品和制造商数据库,我想找到所有生产多种药品的制造商。我如何才能只获得制造商及其生产的药物?

我当前正在使用

match (a:Brand), (c:Manufacturer) where size((c)-[:PRODUCED]->()) >1 return a,c;

返回制造商生产的一种以上药物但也包括所有药物的制造商,与制造商无关

2 个答案:

答案 0 :(得分:1)

此查询使用aggregating functionCOLLECT返回每个制造多个品牌的制造商的记录以及这些品牌的集合:

MATCH (m:Manufacturer)-[:PRODUCED]->(b:Brand)
WITH m, COLLECT(b) AS brands
WHERE SIZE(brands) > 1
RETURN m, brands;

答案 1 :(得分:0)

听起来像您只需要选择制造商,就像这样:

MATCH (c:Manufacturer) WHERE size((c)-[:PRODUCED]->()) > 1 RETURN c;