Neo4j CQL - 合并


Neo4j的CQL MERGE使用命令 -

  • 要创建节点,关系和属性

  • 为了从数据库中检索数据

MERGE命令创建命令和MATCH命令的组合。

MERGE = CREATE + MATCH

Neo4j的CQL MERGE图中的给定模式命令搜索,如果存在则返回结果

如果它不在图中存在,则它创建新的节点/关系并返回结果。


Neo4j的CQL MERGE语法

MERGE (<node-name>:<label-name>
{
   <Property1-name>:<Pro<rty1-Value>
   .....
   <Propertyn-name>:<Propertyn-Value>
})

语法说明

S.No. 语法元素 描述
1。 合并 这是一个Neo4j的CQL关键字。
2。 <节点名称> 它是一个节点或关系的名称。
3。 <标签名称> 这是一个节点或关系的标签名称。
4。 <PROPERTY_NAME> 这是一个节点或关系的属性名。
5。 <PROPERTY_VALUE> 这是一个节点或关系的属性值。
6。 使用冒号(:)操作符来分隔属性名称和一个节点或关系的价值。

注意 -

Neo4j的CQL MERGE命令语法类似于CQL Create命令。

我们将通过这两个命令来执行以下操作 -

  • 有一个属性创建一个配置文件节点:ID,名称

  • 创建具有相同的属性相同的配置节点:ID,名称

  • 检索所有配置文件节点详细信息和观察结果

我们将使用CREATE命令来执行这些操作


Neo4j的CQL创建示例

这个例子用CREATE执行上述所有操作,MATCH和RETURN命令来创建Google+个人资料。

操作(1):创建属性配置文件节点:ID,名称

第1步 -打开Neo4j的数据浏览器

Neo4j的CQL教程

第2步 -输入在数据浏览器下面的命令

CREATE (gp1:GoogleProfile1 {Id: 201401, Name:"Apple"})
Neo4j的CQL教程

第3步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

如果我们观察到成功的消息,它已经增加了两个属性GoogleProfile1节点。

操作(2):创建具有相同属性相同的配置节点:编号,名称。

第1步 -打开Neo4j的数据浏览器

第2步 -输入在数据浏览器下面的命令

CREATE (gp1:GoogleProfile1 {Id: 201401, Name:"Apple"})
Neo4j的CQL教程

第3步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

如果我们观察到成功的消息,它已经增加了两个属性GoogleProfile1节点。

操作(3):获取所有个人资料节点详细信息和观察结果。

第1步 -打开Neo4j的数据浏览器

第2步 -输入在数据浏览器下面的命令

MATCH  (gp1:GoogleProfile1) 
RETURN gp1.Id,gp1.Name
Neo4j的CQL教程

第3步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

如果我们观察上面的查询结果,它显示2行有重复的值。

CQL CREATE命令不检查是否该节点可用与否,它只是在数据库中创建新的节点。

通过观察这些结果,我们可以说,CREATE命令总是将新节点添加到数据库。


Neo4j的CQL合并示例

这个例子用MERGE执行同一套以上操作,并返回命令创建Google+个人资料。

操作(1):创建属性配置文件节点:ID,名称

第1步 -打开Neo4j的数据浏览器

第2步 -输入在数据浏览器下面的命令

MERGE (gp2:GoogleProfile2{ Id: 201402,Name:"Nokia"})
Neo4j的CQL教程

第3步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

如果我们观察到成功的消息,它已经增加了两个属性GoogleProfile1节点。

操作(2):创建具有相同属性相同的配置节点:编号,名称。

第1步 -打开Neo4j的数据浏览器

第2步 -输入在数据浏览器下面的命令

MERGE (gp2:GoogleProfile2{ Id: 201402,Name:"Nokia"})
Neo4j的CQL教程

第3步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

如果我们观察到成功的消息,它已经增加了两个属性GoogleProfile1节点。

操作(3):获取所有个人资料节点详细信息和观察结果

第1步 -打开Neo4j的数据浏览器

第2步 -输入在数据浏览器下面的命令

MATCH  (gp1:GoogleProfile1) 
RETURN gp1.Id,gp1.Name
Neo4j的CQL教程

第3步 -点击“执行”按钮并观察结果。

Neo4j的CQL教程

如果我们观察上面的查询结果,它显示只有一排,因为CQL MERGE命令检查这个节点是否在数据库或不可用。 如果它不存在,它会创建新的节点。 否则,它不创建新的。

通过观察这些结果,我们可以说,CQL MERGE命令添加新节点数据库只有当它不存在。