Neo4j 如何知道子路径是否包含在Cypher中的另一个较长路径中?
给定一组属于Neo4j数据库的路径,我想知道其中哪些路径是另一条较长路径的子路径 例如: 路径集Neo4j 如何知道子路径是否包含在Cypher中的另一个较长路径中?,neo4j,cypher,Neo4j,Cypher,给定一组属于Neo4j数据库的路径,我想知道其中哪些路径是另一条较长路径的子路径 例如: 路径集 (a) -[r]->(b) (a) -[r]->(b)->[r]->(c) (a) [r]->(b)->[r]->(c)->[r]->(d) (a) -[r]->(d) 预期的答复将是: (a) -[r]->(b) (a) -[r]->(b)->[r]->(c) 较长路径中包含的两条路径: (a) [r]->(b)->[r]->(c)->[r]->(d) 在Cypher中有任何语法可以做到这一点吗
提前感谢。我怀疑您实际上是在尝试使用查询只获取“完整路径”(即在叶节点结束的路径),而不获取任何部分路径 如果我的怀疑是正确的,那么可能有一种简单的方法(给定您的示例路径)可以做到这一点 例如,如果当前查询为:
MATCH p=(a:Foo)-[:REL*]->(b:Bar)
RETURN p;
您可以使用以下查询仅获取“完整”路径:
MATCH p=(a:Foo)-[:REL*]->(b:Bar)
WHERE NOT (b)-[:REL]->()
RETURN p;