【云原生专题】基于Docker+Neo4j图数据库搭建企业级分布式应用拓扑图_neo4j分布式(4)


#### 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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值