
Neo4j-创建节点之间的关系
分析:
解释 1,创建2个节点,1个关系 2,关系和节点都有属性,和实体关联。我们可以清楚看到电影之间关系。
分析
发布日期:2021-05-06 19:51:12
浏览次数:19
分类:技术文章
本文共 2458 字,大约阅读时间需要 8 分钟。
节点的创建时很简单的,只要用create创建名字和属性即可。但是节点的关系创建有点复杂,因为需要考虑如何匹配到有关系的两个节点,以及关系本身的属性如何设置。这里我简单学一下如何建立节点之间的关系。
选择的顺序是由易到难,而不是场景的使用频率。1,新节点+新关系+无属性
语法:
CREATE (: )- [ : ]-> ( : )RETURN
案例
CREATE (fb1:FaceBookProfile1)-[like:LIKES]->(fb2:FaceBookProfile2)
结果

- create语句创建了1一个关系,2个节点
- 2个节点只有lable而没有属性,也就是只有角色。比如创建了一个警察标签,一个小偷标签。没有属性就不知道是谁。这样的关系其实是没有现实意义的。
- 显示的两个节点自动分配了ID,其实不代表任何real 实体。
2,新的节点+新的关系,有属性
语法
CREATE (: { })- [ : { }] ->( : { })RETURN #RETURN子句是可选的。 如果我们想立即看到结果,那么使用它。 否则,我们可以省略这个子句。
实例
CREATE (video1:YoutubeVideo1{title:"Action Movie1",updated_by:"Abc",uploaded_date:"10/10/2010"})-[movie:ACTION_MOVIES{rating:1}]->(video2:YoutubeVideo2{title:"Action Movie2",updated_by:"Xyz",uploaded_date:"12/12/2012"})
结果

3,现有节点+新的关系,无属性
语法
MATCH (: ),( : )CREATE ( )-[ : ]->( )RETURN #RETURN子句是可选的。 如果我们想立即看到结果,那么使用它。 否则,我们可以省略这个子句。
实例-需要先创建节点customer,creditcard
MATCH (e:Customer),(cc:CreditCard) CREATE (e)-[r:DO_SHOPPING_WITH ]->(cc)
结果

- 为现有的两个节点添加了关系。这种情况我们需要用match先找到两个节点,然后在给两个节点添加关系。如果没有match就等同于新建节点。现有的节点被忽略
- 这个例子比较简单,没有匹配的规则,实际参考意义不大
实际操作,在创建节点的同时创建关系
我们先看一个实际案例,县创建了节点,后创建了关系。
注意点 1,创建节点和关系语句必须一次执行完,否则如上面例子所述,创建关系时()中的节点被认为是新的节点。 2,分号是一个语句的结尾 3,同时执行时,Keanu等作为节点的标识符可以被下面识别,分开执行后面语句是认为新的节点。CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})CREATE (Carrie:Person {name:'Carrie-Anne Moss', born:1967})CREATE (Laurence:Person {name:'Laurence Fishburne', born:1961})CREATE (Hugo:Person {name:'Hugo Weaving', born:1960})CREATE (LillyW:Person {name:'Lilly Wachowski', born:1967})CREATE (LanaW:Person {name:'Lana Wachowski', born:1965})CREATE (JoelS:Person {name:'Joel Silver', born:1952})CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix), (Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix), (Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix), (Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix), (LillyW)-[:DIRECTED]->(TheMatrix), (LanaW)-[:DIRECTED]->(TheMatrix), (JoelS)-[:PRODUCED]->(TheMatrix)CREATE (Emil:Person {name:"Emil Eifrem", born:1978})CREATE (Emil)-[:ACTED_IN {roles:["Emil"]}]->(TheMatrix)
发表评论
最新留言
不错!
[***.144.177.141]2025年03月31日 15时59分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java并发学习12:问题引入
2019-03-04
java并发学习20:park与unpark
2019-03-04
java并发学习24:固定运行顺序模式
2019-03-04
html5学习9:HTML5文档结构详解
2019-03-04
Fegin
2019-03-04
介绍一个不错的分析客户价值的模型RFM
2019-03-04
SpringMVC---使用
2019-03-04
2.2.4 加减法运算和溢出判断更换
2019-03-04
2.2.6 强制类型转换
2019-03-04
计算机网络教程 谢希仁 第三章 数据链路层
2019-03-04
LeetCode:Database 05.行程和用户
2019-03-04
Redis缓存数据的处理流程
2019-03-04
Linux:文件句柄泄漏问题
2019-03-04