我正在尝试在Neo4j中查找所有指向其中的GOLDSOURCEFEED关系超过1个的Datum节点。而且我不在乎哪种类型的节点具有这种关系。这是基本查询,因此您可以看到节点变量等。
MATCH (p:Datum)<-[:GOLDSOURCEFEED]-()
WHERE exists ( (p:Datum)<-[:GOLDSOURCEFEED]-() )
RETURN p.name
很显然,当我在上面的列表中输入时,我得到了所有具有GOLDSOURCEFEED关系的Datum节点,我希望对其进行优化以仅列出存在多个GOLDSOURCEFEED关系的地方。
答案 0 :(得分:0)
我将关系的数量计为count(r),然后将此作为过滤1个以上GOLDSOURCEFEED的条件。
MATCH (p: Datum) <- [r: GOLDSOURCEFEED] - ()
WITH p, count(r) as cnt
WHERE cnt > 1
RETURN p.name;
答案 1 :(得分:0)
您应该使用有效的程度检查:
MATCH (p: Datum)
WHERE SIZE((p)<-[:GOLDSOURCEFEED]-()) > 1
RETURN p.name;
度检查仅使用每个节点已经可用的数据,并且不需要实际获取路径。当您不关心关系的另一端的节点或任何关系属性时,可以执行度检查。