springboot+neo4j+d3项目之neo4j基础学习(一)创建create、查询match、删除delete
前一阵做了一个neo4j+springboot+d3的项目,由于一直有别的事情,所以现在才着手写一写自己学到的东西
这一篇写一下neo4j的操作(简单的neo4j学习可以参考https://www.w3cschool.cn/neo4j/neo4j_building_blocks.html)
1.创建一个最简单的节点
create (e:Entity)或create (:Entity)
注:create是neo4j新建语句,e可以看作一个变量名,当然不加也可以,:Entity表示创建节点的标签,这个一定要有,我现在创建的是Entity,当然可以写自己的标签,点击运行按钮后,可以看到新建了一个节点
我们可以看到这个节点什么属性都没有,除了neo4j自己赋值的一个id,下面就创建有属性的节点
2.创建有属性的节点
create (n:Entity{name:'英短',type:'cat'})
neo4j将节点属性放到**{}**中
运行后,可以看到我们创建了一个有属性的节点,当然neo4j自带id属性仍然存在
3.查询节点
如果要简单查询所有的节点,执行:
match n=() return n 或 MATCH (n) RETURN n LIMIT 25(不区分大小写)
后边语句的limit可以限制查询的数量,在节点数量多时可以用到
查询结果如图:
4.查询特定标签的节点
我们可以看到在3中是对节点的无差别的查询,如果要查询特定标签的节点,可以执行
match n=(:Entity) return n 或 match (n:Entity) return n
注意需要用一个变量承接查询的结果
5.根据属性查询某一特定的节点
match (n:Entity) where n.name='英短' return n 或者 match (n:Entity{name:'英短'}) return n
如果有多个条件可以用and 或者or 连接
6.当然也可以查询多个节点:
match (a:Entity{name:'英短'}),(b:Entity{name:'鱼'}) return a,b
7.在节点之间创建简单的关系
使用match + create
match (a:Entity{name:'英短'}),(b:Entity{name:'鱼'}) create (a)-[r:Relation]->(b)
以上建立一条无属性,标签为Relation的标签(这个标签好像一定要有,否则会报错)
以上只是建立了一个简单的关系,如果要建立有属性的关系,和建立有属性的节点一样
match (a:Entity{name:'哈士奇'}),(b:Entity{name:'火腿'}) create (a)-[r:Relation{type:'吃'}]->(b)
8.查询关系
match p = (a:Entity)-[r:Relation{name:'吃'}]->(b:Entity) return p
9.删除
使用match + delete
match (n) delete n
使用这个语句可以删除所有节点,但如果节点之间存在关系就会报错:
所以要先删除节点间的关系
如果要连带关系一起删除,可以使用detach delete: 表示删除一个节点或多个节点,跟节点相关的所有关系也都被删除。(参考:https://www.cnblogs.com/ljhdo/p/10929708.html)
10.删除特定的关系
match p = (a:Entity)-[r:Relation{name:'吃'}]->(b:Entity) delete r
如果是delete p会把关系连接的节点一起删除,前提是节点不存在其他关系
11.删除所有关系
match (a:Entity)-[r:Relation]->(b:Entity) delete r
12.删除节点
当节点不存在关系后,就可以删除
match (a:Entity{name:'猫'}) delete a
删除所有节点
match (a) delete a
也可以只删除特定标签的
match (a:Entity) delete a
删除后如图