前面《Neo4j入门系列(八)Neo4j Cypher查询语言之Create关键字》我们介绍了Create关键字,这里的话我们介绍下Merge关键字。Merge关键字他的意思就是合并,在Neo4J里面其实主要就是在已存在的节点或者关系里面做合并其他属性,关系等操作。下面我们来演示一下。
1、使用Merge创建节点
创建节点既可以使用Create,也可以使用Merge进行创建。使用Merge创建的时候,如果节点不存在,那么就新创建一个节点,如果实体已经存在了,那么就不会再另外创建节点,下面咱们来演示一下。
Merge (m:Person{name:'张三'}) return m
如果neo4j数据库是空的或者么有张三这个人,那么我们第一遍执行的时候就会直接创建一个节点,然后重复执行一遍,我们仍然可以看到只有1个节点,效果图如下:
2、在已有的节点中添加属性
如果节点存在的话,那么我们可以向某个节点添加属性,示例如下:
//给张三这个节点添加上年龄属性 Merge (m:Person{name:'张三'}) set m.age = 15 return m
执行完毕之后,我们就可以看到在张三这个节点上添加了年龄的属性:
3、使用Merge创建关系
当然除了使用merge创建节点之外,我们还可以使用merge来创建关系。他的语法和create语法差不多,示例如下:
match (a),(b) merge (a)-[r:link]->(b)
例如下面我们来演示一下:
//再创建一个李四的节点 Merge (m:Person{name:'李四'}) on create set m.age =20 return m //创建张三和李四的兄弟关系 match (a{name:'张三'}),(b{name:'李四'}) merge (a)-[r:兄弟]->(b) //获取结果信息 match (n) return n
可以看到这里我们就使用merge创建了两个节点的关系了。是不是和create一样的?在实际工作中如果涉及到太多的数据,怕出现数据误差的话,我们建议还是使用merge。
还没有评论,来说两句吧...