Neo4j Merge 命令

2025年3月17日 | 阅读 3 分钟

Neo4j MERGE 命令是 CREATE 和 MATCH 命令的组合。此命令用于在图中搜索给定的模式。如果它存在于图中,它将返回结果,否则,它将创建一个新的节点/关系并返回结果。

使用 MERGE 命令,您可以执行以下操作

  • 合并带有标签的节点。
  • 合并带有属性的节点。
  • OnCreate 和 OnMatch。
  • 合并关系。

语法

示例

首先在 Neo4j 数据库中创建两个带有标签 sachin 和 Ind 的节点。创建从 sachin 到 Ind 的类型为 "BATSMAN_OF" 的关系。

Neo4j Merge command 1

合并带有标签的节点

MERGE 子句用于基于标签合并数据库中的节点。如果尝试基于标签合并节点,则 Neo4j 会验证是否存在带有给定标签的任何节点。 如果没有,将创建当前节点。

语法

示例 1

让我们将节点“Sehwag”合并到标签播放器。 Neo4j 验证是否存在任何带有标签播放器的节点。 如果没有,它会创建一个名为“Sehwag”的节点并返回它。

如果存在任何带有给定标签的节点,则 Neo4j 将返回所有节点。

输出

Neo4j Merge command 2

这里已经有很多带有标签播放器的节点。 因此,无需创建另一个节点进行合并。

示例 2

将名为“CT”的节点与名为“Tornament”的标签合并。 由于没有带有此标签的节点,Neo4j 会创建一个带有给定名称的节点并返回它。

输出

Neo4j Merge command 3

合并带有属性的节点

您可以添加与您合并的节点相关的属性。

语法

示例

输出

Neo4j Merge command 4

OnCreate 和 OnMatch

OnCreate 和 OnMatch 命令用于指示节点是否已创建或匹配。 无论何时执行合并查询,都会匹配或创建节点。

语法

示例

以下示例演示了 Neo4j 中 OnCreate 和 OnMatch 子句的用法。 如果数据库中已存在指定的节点,则将匹配该节点,并且将在该节点中创建具有键值对 isFound = "true" 的属性。 如果数据库中不存在指定的节点,则将创建该节点,并在其中创建具有键值对 isCreated ="true" 的属性。

输出

Neo4j Merge command 5

合并关系

MERGE 子句也可用于合并关系,就像节点一样。

参见此示例,该示例使用 Neo4j 中的 MATCH 子句合并关系。 此查询尝试合并节点 ?ind?(标签:Country & name:India)和 ICC(标签:Tornament & name:ICC Champions Trophy)之间的名为 WINNERS_OF 的关系。


下一个主题Neo4j Set 子句