如何查询拥有两条及以上IS_TRUE/IS_FALSE关系的RULE节点?
解决方案
要筛选出拥有两条及以上来自同一节点的IS_TRUE或IS_FALSE关系的RULE节点,你需要通过分组统计关系数量来实现,具体Cypher查询如下:
MATCH (source)-[:IS_TRUE|IS_FALSE]->(r:RULE) WITH r, source, COUNT(*) AS relCount WHERE relCount >= 2 RETURN r
代码说明:
MATCH (source)-[:IS_TRUE|IS_FALSE]->(r:RULE):匹配所有通过IS_TRUE或IS_FALSE关系指向RULE节点的来源节点source,以及对应的RULE节点r。WITH r, source, COUNT(*) AS relCount:按RULE节点和来源节点分组,统计每个分组内的关系数量,命名为relCount。WHERE relCount >= 2:过滤出关系数量≥2的分组,也就是同一来源节点对该RULE节点有两条及以上目标关系的情况。RETURN r:返回符合条件的RULE节点。
如果需要同时查看对应的来源节点和关系数量,可以修改返回语句:
MATCH (source)-[:IS_TRUE|IS_FALSE]->(r:RULE) WITH r, source, COUNT(*) AS relCount WHERE relCount >= 2 RETURN r, source, relCount
内容的提问来源于stack exchange,提问作者JAMSHAID
相关产品推荐
相关产品推荐

