如何查找特定关系节点?用Cypher查询指定城市所属国家
用Cypher查询特定关系的节点
要查找具有特定关系的节点,核心是在Cypher的MATCH子句中明确关系类型,结合节点标签进行匹配:
查找与指定节点存在特定关系的节点
比如假设存在(:City)-[:BELONGS_TO]->(:Country)的关系模型,要找"北京"所属的国家节点,可写:MATCH (c:City {name: "北京"})-[:BELONGS_TO]->(country:Country) RETURN country查找所有存在特定关系的节点对
如果不需要限定起始节点,直接匹配所有带目标关系的节点组合:MATCH (a)-[:BELONGS_TO]->(b) RETURN a, b
用Cypher查找具有特定属性的节点
通过在MATCH子句的节点括号内添加属性条件,即可筛选出符合要求的节点:
精确匹配属性值
比如查找所有名称为"London"的城市节点:MATCH (city:City {name: "London"}) RETURN city模糊匹配或范围匹配属性
支持使用比较运算符(如STARTS WITH、>、<)进行灵活筛选,比如查找名称以"New"开头的城市:MATCH (city:City) WHERE city.name STARTS WITH "New" RETURN city
根据城市名称查询所属国家
基于你提到的城市-国家数据模型,假设数据结构为(:City {name: "城市名称"})-[:BELONGS_TO]->(:Country {name: "国家名称"}),可用以下查询获取指定城市对应的国家:
// 替换"你的目标城市名"为实际城市名称 MATCH (city:City {name: "你的目标城市名"})-[:BELONGS_TO]->(country:Country) RETURN country.name AS 所属国家
如果需要参数化查询(避免硬编码,更安全),可写:
MATCH (city:City {name: $cityName})-[:BELONGS_TO]->(country:Country) RETURN country.name AS 所属国家
执行时传入cityName参数即可。
内容的提问来源于stack exchange,提问作者Taja Jan
相关产品推荐
相关产品推荐

