Neo4j CQL - 合并
Neo4j使用CQL MERGE命令 -
创建节点,关系和属性
为从数据库检索数据
MERGE命令是CREATE命令和MATCH命令的组合。
MERGE = CREATE + MATCH
Neo4j CQL MERGE命令在图中搜索给定模式,如果存在,则返回结果
如果它不存在于图中,则它创建新的节点/关系并返回结果。
Neo4j CQL MERGE语法
MERGE (<node-name>:<label-name> { <Property1-name>:<Property1-Value> ..... <Propertyn-name>:<Propertyn-Value> })
语法说明:
S.No. | 语法元素 | 描述 |
---|---|---|
1 | MERGE | 它是一个Neo4j CQL关键字。 |
2 | <node-name> | 它是节点或关系的名称。 |
3 | <label-name> | 它是节点或关系的标签名称。 |
4 | <property_name> | 它是节点或关系的属性名称。 |
5 | <property_value> | 它是节点或关系的属性值。 |
6 | : | 使用colon(:)运算符来分隔节点或关系的属性名称和值。 |
注意 -
Neo4j CQL MERGE命令语法与CQL CREATE命令类似。
我们将使用这两个命令执行以下操作 -
创建具有一个属性的配置文件节点:Id,名称
创建具有相同属性的同一个Profile节点:Id,Name
检索所有Profile节点详细信息并观察结果
我们将使用CREATE命令执行这些操作
Neo4j CQL CREATE示例
此示例通过使用CREATE,MATCH和RETURN命令创建Google+个人资料,执行上述所有操作。
操作(1):创建具有属性:Id,Name的Profile节点
步骤1 -打开Neo4j数据浏览器

CREATE (gp1:GoogleProfile1 {Id: 201401, Name:"Apple"})


操作(2):创建具有相同属性的同一个Profile节点:Id,Name。
步骤1 -打开Neo4j的数据浏览器
步骤2 -输入在数据浏览器下面的命令
CREATE (gp1:GoogleProfile1 {Id: 201401, Name:"Apple"})


如果我们观察到成功消息,它已经向GoogleProfile1节点添加了两个属性。
操作(3):检索所有Profile节点详细信息并观察结果。
步骤1 -打开Neo4j数据浏览器
步骤2 -在数据浏览器上键入以下命令
MATCH (gp1:GoogleProfile1) RETURN gp1.Id,gp1.Name


CQL CREATE命令检查此节点是否可用,它只是在数据库中创建新节点。
通过观察这些结果,我们可以说CREATE命令总是向数据库添加新的节点。
Neo4j CQL MERGE示例
此示例通过使用MERGE和RETURN命令创建Google+个人资料,执行相同的上述操作。
操作(1):创建具有属性:Id,Name的Profile节点
步骤1 -打开Neo4j数据浏览器
步骤2 -在数据浏览器上键入以下命令
MERGE (gp2:GoogleProfile2{ Id: 201402,Name:"Nokia"})


操作(2):创建具有相同属性的同一个Profile节点:Id,Name。
步骤1 -打开Neo4j数据浏览器
步骤2 -在数据浏览器上键入以下命令
MERGE (gp2:GoogleProfile2{ Id: 201402,Name:"Nokia"})


操作(3):检索所有Profile节点详细信息并观察结果
步骤1 -打开Neo4j数据浏览器
步骤2 -在数据浏览器上键入以下命令
MATCH (gp2:GoogleProfile2) RETURN gp2.Id,gp2.Name


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