Collections 如何排除Neo4j Cypher中的某些路径

Collections 如何排除Neo4j Cypher中的某些路径,collections,path,neo4j,cypher,nodes,Collections,Path,Neo4j,Cypher,Nodes,我有两组路径 集合1 A->B->C->D A->E->F->D A->G->J->H I->B->C->D 收藏2 E->D I->D Cypher查询输出应该是集合1的路径,其中不存在第二个集合的节点组合。 在上面的示例中,集合2的节点E、D、第一个元素存在于集合1的第二个路径中,因此应该删除第二个。类似地,集合2第2个元素的节点I、D存在于集合1的第4个路径中,因此第4个也应该被丢弃 那么输出应该是 收藏3 A->B->C->D A->G->J->H 通过Cypher,我能够找到集合1的路

我有两组路径

集合1

  • A->B->C->D
  • A->E->F->D
  • A->G->J->H
  • I->B->C->D
  • 收藏2

  • E->D
  • I->D
  • Cypher查询输出应该是集合1的路径,其中不存在第二个集合的节点组合。 在上面的示例中,集合2的节点E、D、第一个元素存在于集合1的第二个路径中,因此应该删除第二个。类似地,集合2第2个元素的节点I、D存在于集合1的第4个路径中,因此第4个也应该被丢弃

    那么输出应该是 收藏3

  • A->B->C->D
  • A->G->J->H
  • 通过Cypher,我能够找到集合1的路径,其中存在集合2路径的节点,但我无法在集合之间执行“减号”操作

    如何让密码查询实现上述功能

    提前谢谢


    Rasyq

    没有你的密码查询,回答起来并不容易。但通常,您可以从带有
    节点(您的\u路径)
    的路径中获取节点,并使用
    all()
    谓词检查是否所有这些节点都包含在另一个路径中

    MATCH p1 = (your first paths), p2 = (the paths you check against)
    // filter paths where NOT all nodes of p2 are in p1
    WHERE NOT all(node2 IN nodes(p2) WHERE node2 IN p1)
    RETURN p1
    

    你能分享你的密码查询吗?