如何用Cypher查询仅含指定标签节点与指定类型关系的Neo4j图谱
正确的Cypher查询写法
要筛选出标签属于指定数组、关系类型属于指定数组的节点及其关联关系,你可以这样写:
MATCH (n)-[r]-(m) WHERE ANY(label IN labels(n) WHERE label IN ['标签1', '标签2']) AND ANY(label IN labels(m) WHERE label IN ['标签1', '标签2']) AND type(r) IN ['关系类型1', '关系类型2'] RETURN n, r, m
关键说明:
labels(n)返回节点n的所有标签,通过ANY函数判断是否存在标签在你指定的标签数组内type(r)返回关系r的类型,直接判断是否属于目标关系类型数组- 同时校验两端节点
n和m的标签,确保返回的都是符合要求的节点 - 返回
n, r, m才能完整展示关联的图谱结构
如果只需要其中一端节点符合标签要求,去掉对应节点的ANY判断即可。
内容的提问来源于stack exchange,提问作者Ishimwe etienne
相关产品推荐
相关产品推荐

