neo4j 检查具有两个IS_TRUE类型关系的结点

olhwl3o2  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(114)

我尝试从同一个节点中提取所有类型为RULE的节点,这些节点具有两个类型为IS_TRUEIS_FALSE的关系。我可以提取具有单个关系的节点,如下所示:

MATCH (r:RULE)-[:IS_TRUE]->(n)

RETURN r

但是我想检查那些产生两个或更多具有IS_TRUE关系的边的节点,上面的查询只返回产生IS_TRUE关系的所有节点。

z31licg0

z31licg01#

这可能是最有效的方法:

MATCH (r:RULE)
WHERE SIZE([(r)-[:IS_TRUE]->()|1]) = 2
RETURN r

这个查询的SIZE子句是这样构造的,它使Cypher查询计划器使用getDegree操作,该操作不需要命中DB来获取关系的数量。请阅读this other answer以了解详细信息。

相关问题