我创建了一个查询,该查询将为一个节点匹配传入度为0且传出度不同于0的节点。像这样,我可以在我的图中识别出根疾病(无祖先的疾病)。 / p>
我的图表中有两种关系: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条记录。当我查看该查询时,我认为找不到任何错误,它应该可以运行
答案 0 :(得分:1)
此查询的前4个结果显示两个度均为0,但我指定了 那个度数之一应该不同于0。为什么给我 这个奇怪的结果吗?
检查您为HAS_DESCENDANT
指定的查询
size((u)-[:HAS_DESCENDANT]->())<>0
但在返回语句中
size((u)-[:HAS_CHILD]->()) AS Parent_of
您正在获得HAS_CHILD
的结果