我尝试从同一个节点中提取所有类型为RULE的节点,这些节点具有两个类型为IS_TRUE或IS_FALSE的关系。我可以提取具有单个关系的节点,如下所示:
RULE
IS_TRUE
IS_FALSE
MATCH (r:RULE)-[:IS_TRUE]->(n) RETURN r
但是我想检查那些产生两个或更多具有IS_TRUE关系的边的节点,上面的查询只返回产生IS_TRUE关系的所有节点。
z31licg01#
这可能是最有效的方法:
MATCH (r:RULE) WHERE SIZE([(r)-[:IS_TRUE]->()|1]) = 2 RETURN r
这个查询的SIZE子句是这样构造的,它使Cypher查询计划器使用getDegree操作,该操作不需要命中DB来获取关系的数量。请阅读this other answer以了解详细信息。
SIZE
getDegree
1条答案
按热度按时间z31licg01#
这可能是最有效的方法:
这个查询的
SIZE
子句是这样构造的,它使Cypher查询计划器使用getDegree
操作,该操作不需要命中DB来获取关系的数量。请阅读this other answer以了解详细信息。