家有儿女使用neo4j关系链路图表示

 

create (n:jernv_person {name:'夏东海',age:40}) return n;
create (n:jernv_person {name:'刘梅',age:35}) return n;
create (n:jernv_person {name:'刘星',age:16}) return n;
create (n:jernv_person {name:'夏雪',age:18}) return n;
create (n:jernv_person {name:'夏雨',age:12}) return n;

create (n:jernv_person {name:'胡一统',age:42}) return n;
create (n:jernv_person {name:'玛丽',age:36}) return n;

create (n:jernv_person {name:'夏祥',age:65}) return n;
create (n:jernv_person {name:'范晓英',age:60}) return n;



创建关系
match (a:jernv_person {name:'夏东海'}), (b:jernv_person {name:'刘梅'}) MERGE (a)-[:妻子{married:'2001-12-01'}]->(b);
match (a:jernv_person {name:'夏东海'}), (b:jernv_person {name:'夏雪'}) MERGE (a)-[:女儿{born:'2012-12-01'}]->(b);
match (a:jernv_person {name:'夏东海'}), (b:jernv_person {name:'夏雨'}) MERGE (a)-[:儿子{born:'2015-12-01'}]->(b);

match (a:jernv_person {name:'刘梅'}), (b:jernv_person {name:'刘星'}) MERGE (a)-[:儿子{born:'2014-12-01'}]->(b);

match (a:jernv_person {name:'刘星'}), (b:jernv_person {name:'胡一统'}) MERGE (a)-[:父亲]->(b);
match (a:jernv_person {name:'刘星'}), (b:jernv_person {name:'夏东海'}) MERGE (a)-[:继父]->(b);

match (a:jernv_person {name:'夏雨'}), (b:jernv_person {name:'夏东海'}) MERGE (a)-[:父亲]->(b);
match (a:jernv_person {name:'夏雨'}), (b:jernv_person {name:'刘梅'}) MERGE (a)-[:母亲]->(b);

match (a:jernv_person {name:'夏雪'}), (b:jernv_person {name:'玛丽'}) MERGE (a)-[:母亲]->(b);
match (a:jernv_person {name:'夏雪'}), (b:jernv_person {name:'夏东海'}) MERGE (a)-[:父亲]->(b);

match (a:jernv_person {name:'夏东海'}), (b:jernv_person {name:'夏祥'}) MERGE (a)-[:父亲]->(b);
match (a:jernv_person {name:'刘梅'}), (b:jernv_person {name:'范晓英'}) MERGE (a)-[:母亲]->(b);

 

 

 

#########################查询例子####################################
1.查询某个人物的节点
MATCH (p:jernv_person {name: '胡一统'}) RETURN p;

 

2.查找某个人的链路
MATCH (n:jernv_person)-[r]-(m:jernv_person) where n.name='夏东海' return n,r,m
或是
MATCH (n:jernv_person)-[r]-(m:jernv_person) where id(n)=110014 return n,r,m

 

3.查找层次只有1级的链路
MATCH p=(a)-[*..1]-(b)
WHERE a.name='夏东海'
RETURN p

 

4.找最短路径
MATCH (p:jernv_person {name: "夏雪"}), (m:jernv_person {name: "刘梅"})
MATCH path = shortestPath((p)-[*]-(m))
RETURN path

 

posted @ 2025-07-10 11:16  slnngk  阅读(23)  评论(0)    收藏  举报