本文概述
- 合并带有标签的节点
- 合并具有属性的节点
- OnCreate和OnMatch
- 合并关系
使用MERGE命令, 你可以执行以下操作:
- 合并带有标签的节点。
- 合并具有属性的节点。
- OnCreate和OnMatch。
- 合并关系。
MERGE (node: label {properties . . . . . . . })
例:
首先在Neo4j数据库中创建两个带有sachin和Ind标签的节点, 然后从sachin到Ind创建一个类型为” BATSMAN_OF” 的关系。
CREATE (sachin:player{name: "Sachin Tendulkar", YOB: 1968, POB: "Mumbai"})
CREATE (Ind:Country {name: "India"})
CREATE (sachin)-[r:BATSMAN_OF]->
(Ind)
文章图片
合并带有标签的节点 MERGE子句用于根据标签合并数据库中的节点。如果尝试基于标签合并节点, 则Neo4j会验证是否存在带有给定标签的节点。否则, 将创建当前节点。
句法:
MERGE (node:label) RETURN node
范例1:
让我们将节点” Sehwag” 合并到标签播放器。 Neo4j验证标签播放器是否存在任何节点。如果没有, 它将创建一个名为” Sehwag” 的节点并返回它。
如果存在带有给定标签的任何节点, 则Neo4j将它们全部返回。
MERGE (Sehwag:player) RETURN Sehwag
输出
文章图片
标签播放器已经有很多节点了。因此, 无需创建另一个要合并的节点。
范例2:
合并名为” CT” 的节点和名为” Tornament” 的标签。由于没有带有该标签的节点, Neo4j将使用给定名称创建一个节点并将其返回。
MERGE (CT:Tornament{name: "ICC Champions Trophy"})
RETURN CT, labels(CT)
输出
文章图片
合并具有属性的节点 你可以使用合并的节点添加属性。
句法:
MERGE (node:label {key1:value, key2:value, key3:value . . . . . . . . })
例:
MERGE (Sehwag:player {name: "Virendra Sehwag", YOB: 1978, POB: "Najafgarh"})
RETURN Sehwag
输出
文章图片
OnCreate和OnMatch OnCreate和OnMatch命令用于指示是否创建或匹配节点。每当我们执行合并查询时, 就会匹配或创建一个节点。
句法:
MERGE (node:label {properties . . . . . . . . . . .})
ON CREATE SET property.isCreated ="true"
ON MATCH SET property.isFound ="true"
【Neo4j merge子句】例:
MERGE (Sehwag:player {name: "Virendra Sehwag", YOB: 1978, POB: "Najafgarh"})
ON CREATE SET Sehwag.isCreated = "true"
ON MATCH SET Sehwag.isFound = "true"
RETURN Sehwag
下面的示例演示Neo4j中OnCreate和OnMatch子句的用法。如果指定的节点已存在于数据库中, 则将匹配该节点, 并在该节点中创建键值对isFound =” true” 的属性。如果指定的节点在数据库中不存在, 则将创建该节点, 并在其中创建具有键值对isCreated =” true” 的属性。
输出
文章图片
合并关系 MERGE子句也可以像节点一样用于合并关系。
请参见此示例, 该示例使用Neo4j中的MATCH子句合并关系。该查询尝试在节点之间查找名为WINNERS_OF的关系。 (标签:国家和地区名称:印度)和ICC(标签:比赛和名称:ICC冠军杯)。
MATCH (a:Country), (b:Tournament)
WHERE a.name = "India" AND b.name = "ICC Champions Trophy"
MERGE (a)-[r:WINNERS_OF]->
(b)
RETURN a, b
推荐阅读
- Neo4j order by子句
- Neo4j CQL read子句
- Neo4j可选的MATCH子句
- Neo4j CQL操作符
- 从CSV导入数据
- Neo4j MATCH子句
- Neo4j LIMIT子句
- Neo4j常规子句
- 电脑问题,本文教您怎样处理无法删除文件与无法读源文件或磁盘