Neo4j 创建关系
在 Noe4j 中,关系是我们用来连接图的两个节点的元素。 这些关系具有数据的方向、类型和形式模式。 本章教你如何
- 建立关系
- 在现有节点之间创建关系
- 使用标签和属性创建关系
建立关系
我们可以使用 CREATE
子句创建关系。 我们将在方括号[]
中指定关系,具体取决于连字符-
和箭头→
之间的关系方向,如以下语法所示。
语法
以下是使用 CREATE
子句创建关系的语法。
CREATE (node1)-[:RelationshipType]->(node2)
示例
首先在数据库中创建两个节点 Jiyik 和 Chi ,如下图。
CREATE (Jiyik:player{name: "迹忆客", YOB: 1991, POB: "Delhi"})
CREATE (Chi:Country {name: "China"})
现在,在这两个节点之间创建一个名为 BATSMAN_OF
的关系:
CREATE (Jiyik)-[r:BATSMAN_OF]->(Chi)
最后,返回两个节点以查看创建的关系。
RETURN Jiyik, Chi
在现有节点之间创建关系
您还可以使用 MATCH
子句在现有节点之间创建关系。
语法
以下是使用 MATCH
子句创建关系的语法。
MATCH (a:LabeofNode1), (b:LabeofNode2)
WHERE a.name = "nameofnode1" AND b.name = " nameofnode2"
CREATE (a)-[: Relation]->(b)
RETURN a,b
示例
以下是使用 match
子句创建关系的 CQL 的示例 。
MATCH (a:player), (b:Country) WHERE a.name = "迹忆客" AND b.name = "China"
CREATE (a)-[r: BATSMAN_OF]->(b)
RETURN a,b
下面是运行的结果
使用标签和属性创建关系
我们可以使用 CREATE
子句创建与标签和属性的关系。
语法
以下是使用 CREATE
子句创建与标签和属性的关系的语法。
CREATE (node1)-[label:Rel_Type {key1:value1, key2:value2, . . . n}]-> (node2)
示例
以下是一个 CQL 示例 ,它创建与标签和属性的关系。
MATCH (a:player), (b:Country) WHERE a.name = "迹忆客" AND b.name = "China"
CREATE (a)-[r:BATSMAN_OF {Matches:5, Avg:90.75}]->(b)
RETURN a,b
执行完成后,我们将得到以下结果。
创建完整路径
在 Neo4j 中,路径是使用连续关系形成的。 可以使用 create 子句创建路径。
语法
以下是使用 CREATE
子句在 Neo4j 中创建路径的语法。
CREATE p = (Node1 {properties})-[:Relationship_Type]->
(Node2 {properties})[:Relationship_Type]->(Node3 {properties})
RETURN p
示例
下面我们看一个 CQL 创建完整路径的示例
CREATE p = (Jiyik {name:"迹忆客"}) - [:TOPSCORRER_OF]->
(Chi{name:"China"}) - [:WINNER_OF] -> (CT2013{name:"Champions Trophy2013"})
RETURN p
执行完成后,我们将得到如下的结果。