图数据库(三):Neo4j中的Create和Merge

在上篇文章中,我们介绍了在项目中如何使用Java来操作Neo4j图数据库。今天我们就仔细的学习一下,Neo4j中如何创建节点,以及Create和Merge的区别使用。

Create的简单用法

在Neo4j中,我们使用Create来创建节点。

create(n:Role{name:"主角",age:10}) return n

我们创建一个Role标签的节点,属性name的值为主角,age的值为10

on create

在Neo4j中我们有时候也会用到On Create,这是一个限定条件,当创建的时候才执行,不创建就不执行,经常是配合Merge使用所以接下来我们先了解一下Merge的用法

Merge的用法

Merge的用法其实可以看成Create和Match的结合,它能保证元素一定存在,如果不存在就创建一个节点

merge(n:Role{name:"主角",age:11}) 

如上,我们会查询Role标签,如果找到属性name值为主角,age值为11的节点,就返回不然就创建一个节点。

MATCH  (n:Person {name:'tom'}), (m:Person {name:"jarry"}) 
MERGE (n)-[r:friend]->(m) 
RETURN r

也可以查询两个节点,如果查询到在查看节点之间是否是friend的关系,如果是就返回,如果两个节点之间没关系就建立一个friend的关系。

merge(n:Role{name:"主角",age:11}) On create set n.age=13 return n

Merge通常也会与On Create一起使用,如上查看Role标签是否存在一个name为主角,age为11的节点,如果有就返回,如果没有就创建一个节点,但是由于有On Create表示如果创建了节点就修改age的值为13

On match

有On Create同样的也就有On match,它们的用法都是相似的

merge(n:Role{name:"主角",age:11}) On match set n.age=13 return n

查看Role标签是否存在一个name为主角,age为11的节点,如果有就修改age的值为13,如果没有就创建一个节点

你可能感兴趣的:(Neo4J,neo4j)