#### 3.2 系统节点的CRUD
* 增加节点
CREATE (n:Java {name:‘订单系统’,firstDeploy:‘2020-1-1’,leader:‘jack’});
CREATE (n:Java {name:‘商品系统’,firstDeploy:‘2021-5-1’,leader:‘mason’});
CREATE (n:App {name:‘淘宝商城’,firstDeploy:‘2021-6-1’,leader:‘peter’});
CREATE (n:MinPro {name:‘闲鱼’,firstDeploy:‘2021-8-1’,leader:‘steve’});
CREATE (n:Web {name:‘商家管理平台’,firstDeploy:‘2021-9-1’,leader:‘lisa’});
CREATE (n:MQ {name:‘中台MQ’,firstDeploy:‘2020-9-1’,leader:‘jane’});
CREATE (n:Public {name:‘每日精选’,firstDeploy:‘2021-4-25’,leader:‘lucy’});
执行后,我们执行查询语句:
MATCH (n) RETURN n
得到的图如下:
![img](https://img-blog.csdnimg.cn/img_convert/b8b9f711bf689e19ba68506e6326d2a8.png)
创建系统节点
* 删除节点
MATCH (n) WHERE n.name=‘闲鱼’ DELETE n;
// 等价于
MATCH (n:MinPro{name:‘闲鱼’}) DELETE n;
* 删除节点的属性
MATCH (n) WHERE n.name=‘闲鱼’ REMOVE n.leader;
// 等价于
MATCH (n:MinPro{name:‘闲鱼’}) REMOVE n.leader;
* 查询节点
// 根据节点的属性进行查询(更接近SQL语法,推荐)
MATCH (n) WHERE n.name=‘闲鱼’ RETURN n;
// 等价查询语句如下,增加了节点的类型MinPro,查询结果更加准确
MATCH (n:MinPro{name:‘闲鱼’}) RETURN n;
* 修改/新增节点属性
MATCH (n) WHERE n.name=‘闲鱼’ SET n.leader=‘steve’;
#### 3.3 系统关系的CRUD
* 新增/修改关系(属性)
MATCH (a),(b) where a.name=‘闲鱼’ AND b.name=‘商品系统’ MERGE (a)-[:invoke]->(b) RETURN a,b;
MATCH (a:MinPro{name:‘闲鱼’}),(b:Java{name:‘订单系统’}) MERGE (a)-[:invoke]->(b) RETURN a,b;
MATCH (a),(b) where a.name=‘淘宝商城’ AND b.name=‘商品系统’ CREATE (a)-[:invoke]->(b) RETURN a,b;
MATCH (a),(b) where a.name=‘淘宝商城’ AND b.name=‘订单系统’ CREATE (a)-[:invoke]->(b) RETURN a,b;
MATCH (a),(b) where a.name=‘商品系统’ AND b.name=‘中台MQ’ CREATE (a)-[:produce]->(b) RETURN a,b;
MATCH (a),(b) where a.name=‘每日精选’ AND b.name=‘中台MQ’ CREATE (a)-[:consume]->(b) RETURN a,b;
// 也可以对关系增加属性
// MERGE语句会覆盖现有的关系,达到更新关系及其属性的目的
MATCH (a),(b) where a.name=‘商家管理平台’ AND b.name=‘订单系统’ MERGE (a)-[:invoke{since:2021-1-1}]->(b) RETURN a,b;
然后执行查询语句:
MATCH (n) RETURN n
得到的图如下:
![img](https://img-blog.csdnimg.cn/img_convert/76de3c5477f80e581328ce622abb6f75.png)
增加系统间的关系
* 删除关系
MATCH (a)-[r:consume]->(b) WHERE a.name=‘每日精选’ AND b.name=‘中台MQ’ DELETE r;
* 删除关系属性
MATCH (a)-[r:invoke]->(b) WHERE a.name=‘商家管理平台’ AND b.name=‘订单系统’ REMOVE r.since;
* 增加/更新关系属性
MATCH (a)-[r:invoke]->(b) WHERE a.name=‘闲鱼’ AND b.name=‘商品系统’ set r.since=2021;
* 查询关系
// 查询所有调用商品系统的关联系统
MATCH (n)-[r:invoke]->(b) WHERE b.name=‘商品系统’ RETURN n;
// 查询所有调用商品系统的关联系统及其调用商品系统的关系
MATCH (n)-[r:invoke]->(b) WHERE b.name=‘商品系统’ RETURN n,r,b;
// 查询所有和商品系统有关联的系统及其和商品系统的关系
MATCH (n)-[r]-(b) WHERE b.name=‘商品系统’ RETURN n,r,b;
本文到此结束,下一篇会讲述如何使用SpringBoot+neo4j来实现本次的案例
![img](https://img-blog.csdnimg.cn/img_convert/2cdcb9eedefb3a7f415cd9016caff17e.png)
![img](https://img-blog.csdnimg.cn/img_convert/9f55429ba4f265c5fb65e02432dfb640.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
这里获取](https://bbs.csdn.net/topics/618545628)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**