NEO4J-关系的创建案例

4,286 阅读2分钟

基于方向性,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分别是作者节点的节点名称和节点标签名

创建成功,一个新的关系被添加到neo4j数据库中.

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

这里关系名称为 "BE_WRITTEN"
关系标签为 "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