如何设置Neo4j节点间不同关系类型的数量限制?
正确的Cypher查询语法(限制CONNECTION和EXCHANGE关系数量)
Cypher不支持直接在关系路径中为不同类型的关系分别指定数量范围,你需要通过WHERE子句统计并过滤路径中两种关系的数量。以下是正确的查询语句:
MATCH path = (from:Station {id: 61})-[:IN]->(sec_from:Section), (to:Station {id: 131})<-[:OUT]-(sec_to:Section), route=(sec_from)-[:CONNECTION|EXCHANGE*]->(sec_to) WHERE size([r IN relationships(route) WHERE type(r) = 'CONNECTION']) BETWEEN 1 AND 100 AND size([r IN relationships(route) WHERE type(r) = 'EXCHANGE']) BETWEEN 0 AND 3 RETURN route;
关键说明:
relationships(route):提取路径route中的所有关系集合size([r IN ... WHERE type(r) = 'XXX']):统计路径中指定类型关系的数量- 通过
BETWEEN关键字分别对两种关系的数量进行范围限制
内容的提问来源于stack exchange,提问作者Ondra
相关产品推荐
相关产品推荐

