【发布时间】:2019-05-15 21:25:08
【问题描述】:
我创建了一个查询,它将匹配传入度数为 0 且传出度数不为 0 的节点。像这样,我可以识别图表中的根本疾病(没有祖先的疾病)。
我的图表中有两种类型的关系:HAS_CHILD(作为疾病的直接后代)和 HAS_DESCENDANT(作为疾病的后代)
MATCH (u:Disease) where size((u)<-[:HAS_CHILD|HAS_DESCENDANT]-())=0 and size((u)-[:HAS_DESCENDANT]->())<>0 RETURN u.prefered_name, size((u)-[:HAS_CHILD]->()) AS Parent_of,size((u)<-[:HAS_CHILD]-()) AS Children_of ORDER BY size((u)-[:HAS_CHILD]->());
此查询的前 4 个结果显示两个度数均为 0,但我指定其中一个度数应不同于 0。为什么给我这个奇怪的结果?
我希望查询将显示结果而不包括前 4 条记录。当我查看查询时,我找不到任何错误,在我看来,它应该可以工作
【问题讨论】:
-
我执行相同的查询,只是将 size((u)-[:HAS_DESCENDANT]->())0 更改为 size((u)-[:HAS_CHILD]->()) 0,在这种情况下,一切都按我的预期进行
-
我需要两个查询都能按预期工作,以便能够识别所有聚合器节点。
标签: neo4j