Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 如何知道子路径是否包含在Cypher中的另一个较长路径中?_Neo4j_Cypher - Fatal编程技术网

Neo4j 如何知道子路径是否包含在Cypher中的另一个较长路径中?

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中有任何语法可以做到这一点吗

给定一组属于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;