create (n:Line {name:'1号线'}) return n;
create (n:Station {name:'古城' }) return n;
create (n:Station {name:'石景山' }) return n;
match (l:Line {name:'1号线'}), (s:Station {name:'古城'}) MERGE (l)-[:`has`]->(s);
match (l:Line {name:'1号线'}), (s:Station {name:'石景山'}) MERGE (l)-[:`has`]->(s);
match (s1:Station {name:'石景山'}), (s2:Station {name:'古城'}) MERGE (s1)-[:`next`{dist:10}]->(s2);
match (s2:Station {name:'古城'}),(s1:Station {name:'石景山'}) MERGE (s2)-[:`next`{dist:10}]->(s1);
MATCH p=()-[r]->() RETURN *;
MATCH (n)-->() RETURN n
MATCH n=(:Station { name: '东单' })-[:next|has]->() RETURN n
MATCH n=(:Station { name: '东单' })-[r]->() RETURN n,r
MATCH (n:Station)-[{line_no:"1号线"}]->()
RETURN n
match (n:Line{name:"1号线"})-[r]->(m)-[k]->(v) return n,r,m,k,v
MATCH (s1:`Station` {name:"东单"}),(s2:`Station` {name:"古城"}),
p=shortestpath((s1)-[r]->(s2))
RETURN p
match p = shortestpath((:Station{name:"东单"})-[*..3]-(:Station{name:"古城"})) return p
MATCH (s1:`Station` {name:"顺义"}),(s2:`Station` {name:"燕山"}),
p=shortestpath((s1)-[r:`next`*..]->(s2))
RETURN p
MATCH n= (s1:`Station` {name:"东单"}),(s2:`Station` {name:"古城"}),
p=shortestpath((s1)-[r:next*..]-(s2))
RETURN p,length(p)
MATCH n=(:Station { name: '东单' })-[r:next|has]-() RETURN n,length(n),sum(r.dist)
获取所有路径使用 [*]
路径长度限制
1..7 路径长度1到7。
6.. 路径长度6开始。
.10 路径最长10。
3 长度为3的路径 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
CALL db.relationshipTypes
CALL db.labels()
MATCH n=(:Station { name: '东单' })-[r]->()
RETURN n,r
MATCH (s1:`Station` {name:"顺义"}),(s2:`Station` {name:"燕山"}),
p=shortestpath((s1)-[r:`next`*..]->(s2))
with p as p,reduce(temp=0,r in [x IN relationships(p) WHERE (x.dist) is not null] | r.dist+temp) as total_dist
RETURN p, total_dist ,length(p) 1 2 3 4 5 6 7 8 9 10 11