Neo4j使用Cypher匹配多关系时如何返回对应的关系类型
解决方案
你可以在匹配指定关系类型时直接将关系绑定到变量,同步返回该变量的类型即可,具体实现代码如下:
MATCH (wallstreet {title: 'Wall Street'})<-[r:ACTED_IN|:DIRECTED]-(person) RETURN person.name, type(r) AS relation_type
逻辑说明
- 语法
[r:ACTED_IN|:DIRECTED]做了两层限制:首先将匹配到的关系绑定到变量r,其次限定了仅匹配ACTED_IN和DIRECTED两类关系,不会命中其他任意关系 - 返回语句中调用
type(r)即可获取当前匹配到的关系类型,使用AS设置别名relation_type可以优化返回结果的可读性
查询执行后会返回两列结果:第一列为关联的人员姓名,第二列为对应匹配的关系类型,完全符合需求。
内容的提问来源于stack exchange,提问作者Evan
相关产品推荐
相关产品推荐

