美文网首页
Neo4J高级语法

Neo4J高级语法

作者: 荒岛at黎明 | 来源:发表于2017-12-31 19:41 被阅读0次

    假设存在如下关系:

    CREATE(P1{id:1,name:'P1'}), (P2{id:2,name:'P2'}), (P3{id:3,name:'P3'}), (P4{id:4,name:'P4'}), (P5{id:5,name:'P5'}),(P1)-[:FRIENDS]->(P2),(P1)-[:FRIENDS]->(P3),(P2)-[:FRIENDS]->(P4),(P3)-[:FRIENDS]->(P5)

    查询从P1开始的第二层关系:

    MATCH (P1 {name : "P1"})-[r:FRIENDS*2]->(FF) return P1,FF,r;

    查询从P1开始的第一、二层关系:

    MATCH(P1{name :"P1"})-[r:FRIENDS*1..2]->(FF)  return P1,FF,r;

    查询结果如果想包含P1则可以使用[r:FRIENDS*0..2]

    查询从P1到P5的路径长度:

    MATCH PP1=(P1 {name : "P1"})-[r:FRIENDS*1..2]->(FF{name : "P5"}) return length(PP1);

    或MATCH (P1 {name : "P1"})-[r:FRIENDS*1..2]->(FF{name : "P5"}) return length(r);

    判断两个用户的关系是否直接连得通:

    MATCH (P1 {name : "P1"}),(P2 {name : "P2"}) MATCH (P1)-[r:FRIENDS]->(P2) return P1,P2;

    如果有返回结果就连得通,否则连不通。

    获得两个节点间的最短路径:

    MATCH (A {name : "P1"}),(B {name : "P5"}) MATCH p=shortestPath((A)-[*..15]->(B)) return A,B,p;

    其中[*..15]的15为最大的关系长度,如果想找出所有最短路径则使用allShortestPaths

    相关文章

      网友评论

          本文标题:Neo4J高级语法

          本文链接:https://www.haomeiwen.com/subject/bopagxtx.html