当前位置:   article > 正文

Neo4j-创建节点之间的关系_noeo4j已知两个节点id创建关系

noeo4j已知两个节点id创建关系

节点的创建时很简单的,只要用create创建名字和属性即可。但是节点的关系创建有点复杂,因为需要考虑如何匹配到有关系的两个节点,以及关系本身的属性如何设置。这里我简单学一下如何建立节点之间的关系。
选择的顺序是由易到难,而不是场景的使用频率。

1,新节点+新关系+无属性

语法:

CREATE  
   (<node1-label-name>:<node1-name>)-
   [<relationship-label-name>:<relationship-name>]->
   (<node1-label-name>:<node1-name>)
RETURN <relationship-label-name>
  • 1
  • 2
  • 3
  • 4
  • 5

案例

CREATE (fb1:FaceBookProfile1)-[like:LIKES]->(fb2:FaceBookProfile2) 
  • 1

结果
在这里插入图片描述
分析:

  1. create语句创建了1一个关系,2个节点
  2. 2个节点只有lable而没有属性,也就是只有角色。比如创建了一个警察标签,一个小偷标签。没有属性就不知道是谁。这样的关系其实是没有现实意义的。
  3. 显示的两个节点自动分配了ID,其实不代表任何real 实体。

2,新的节点+新的关系,有属性

语法

CREATE  
	(<node1-label-name>:<node1-name>{<define-properties-list>})-
	[<relationship-label-name>:<relationship-name>{<define-properties-list>}]
	->(<node1-label-name>:<node1-name>{<define-properties-list>})
RETURN <relationship-label-name>
#RETURN子句是可选的。 如果我们想立即看到结果,那么使用它。 否则,我们可以省略这个子句。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

实例

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"}) 
  • 1
  • 2
  • 3

结果
在这里插入图片描述
解释
1,创建2个节点,1个关系
2,关系和节点都有属性,和实体关联。我们可以清楚看到电影之间关系。

3,现有节点+新的关系,无属性

语法

MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)
CREATE  
	(<node1-label-name>)-[<relationship-label-name>:<relationship-name>]->(<node2-label-name>)
RETURN <relationship-label-name>
#RETURN子句是可选的。 如果我们想立即看到结果,那么使用它。 否则,我们可以省略这个子句。
  • 1
  • 2
  • 3
  • 4
  • 5

实例-需要先创建节点customer,creditcard

MATCH (e:Customer),(cc:CreditCard) 
CREATE (e)-[r:DO_SHOPPING_WITH ]->(cc)
  • 1
  • 2

结果
在这里插入图片描述
分析

  1. 为现有的两个节点添加了关系。这种情况我们需要用match先找到两个节点,然后在给两个节点添加关系。如果没有match就等同于新建节点。现有的节点被忽略
  2. 这个例子比较简单,没有匹配的规则,实际参考意义不大

实际操作,在创建节点的同时创建关系

我们先看一个实际案例,县创建了节点,后创建了关系。
注意点
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/647889
推荐阅读
相关标签
  

闽ICP备14008679号