如何用Cypher查询Neo4j中完整及不完整的A->B->C子图模式
Neo4j Cypher 查询不完整子图模式(A->B且B无后续关系)
要查询仅存在A->B且B无后续指向C的关系的不完整模式,可以使用以下Cypher语句:
MATCH (a:A)-[r]->(b:B) WHERE NOT EXISTS ((b)-->(:C)) RETURN a, b, r
语句说明:
MATCH (a:A)-[r]->(b:B):匹配所有从A类型节点指向B类型节点的关系及对应节点。WHERE NOT EXISTS ((b)-->(:C)):过滤掉B节点存在指向C类型节点出边的情况,只保留B没有后续C节点的A->B模式。
如果需要更严格的条件(B节点没有任何出边,而非仅无指向C的出边),可修改WHERE子句为:
MATCH (a:A)-[r]->(b:B) WHERE NOT EXISTS ((b)-->()) RETURN a, b, r
同理,若要查询仅存在B->C且B无来自A的入边的不完整模式,可使用:
MATCH (b:B)-[r]->(c:C) WHERE NOT EXISTS ((:A)-->(b)) RETURN b, c, r
内容的提问来源于stack exchange,提问作者MikeB2019x
相关产品推荐
相关产品推荐

