基于方向性,Neo4j关系被分为两种主要类型。
- 单向关系
- 双向关系
使用Neo4j CQL CREATE命令来创建两个节点之间的关系。
- 在两个现有节点之间创建无属性的关系
- 在两个现有节点之间创建有属性的关系
- 在两个新节点之间创建无属性的关系
- 在两个新节点之间创建有属性的关系
1. 使用现有节点创建没有属性的关系
1.1 创建关系
使用之前创建的Paper和Author节点创建没有属性的关系.
在创建关系前,需要确认节点可用
MATCH(p:Paper)
RETURN p
MATCH(a:Author)
RETURN a
键入如下命令
MATCH(p:Paper),(a:Author)
CREATE(p)-[r:BE_WRITTEN]->(a)
其中
- "BE_WRITTEN"是关系名
- "r"是关系标签
- p和Paper分别是文章节点的节点名称和节点标签名
- a和Author分别是作者节点的节点名称和节点标签名

1.2 查看关系
MATCH(p)-[r:BE_WRITTEN]->(a)
RETURN r

1.3 详细查看每个节点和关系属性
单击Paper或Author标签可以查看其属性

单击BE_WEITTEN关系以查看其属性。 由于我们创建了没有任何属性的关系,下方没有显示属性信息。

注意
如果我们按照上述的相同步骤创建从Author到Paper的关系(那是相反的方向),将具有没有属性的双向关系。
2. 使用现有节点创建有属性的关系
使用之前创建的Paper和Author节点.
在创建关系前,需要确认节点可用
键入如下命令:
MATCH (p:Paper),(a:Author)
RETURN p,a

MATCH (p:Paper),(a:Author)
CREATE (p)-[r:BE_WRITTEN{year:"2017"}]->(a)
RETURN r

关系标签为 "r"
year是关系 "r" 的属性
3. 使用新节点创建没有属性的关系
在这种情况下,将一次创建两个没有属性的节点和关系。 这意味着,Neo4J数据库没有这两个节点。
键入以下命令
CREATE (fb1:FaceBookProfile1)-[like:LIKES]->(fb2:FaceBookProfile2)
这里关系名称是“LIKES”
关系标签是“like”
fb1和FaceBookProfile1分别是“From Node”的节点名和节点标签名
fb2和FaceBookProfile2分别是“To Node”的节点名和节点标签名。

4.使用新节点创建有属性的关系
键入以下命令
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"})
这里的关系名称是“ACTION_MOVIES”
关系标签是“电影”
video1和YoutubeVideo1分别是“From Node”的节点名和节点标签名
video2和YoutubeVideo2分别是“To Node”的节点名和节点标签名。

5. 检索关系节点的详细信息
语法:
MATCH
(<node1-label-name>)-[<relationship-label-name>:<relationship-name>]->(<node2-label-name>)
RETURN <relationship-label-name>
示例:
MATCH (cust)-[r:DO_SHOPPING_WITH]->(cc)
RETURN cust,cc