首页 > 解决方案 > 如何匹配具有超过 1 个指定关系的节点

问题描述

我试图在 Neo4j 中找到所有 Datum 节点,其中有超过 1 个 GOLDSOURCEFEED 关系指向它。而且我不在乎什么类型的节点有关系。这是基本查询,因此您可以查看节点变量等。

MATCH (p:Datum)<-[:GOLDSOURCEFEED]-()
WHERE exists ( (p:Datum)<-[:GOLDSOURCEFEED]-() )
RETURN p.name

显然,当我放入上面的列表时,我得到了所有具有 GOLDSOURCEFEED 关系的 Datum 节点,我想将其细化为仅列出存在多个 GOLDSOURCEFEED 关系的位置。

标签: neo4jcypher

解决方案


我会将关系数计算为 count(r),然后将其作为过滤超过 1 个 GOLDSOURCEFEED 的条件。

MATCH (p: Datum) <- [r: GOLDSOURCEFEED] - ()  
WITH p,  count(r) as cnt 
WHERE cnt > 1 
RETURN p.name;

推荐阅读