目录
neo4j文档:https://neo4j.com/docs/
核心概念
-
节点
neo4j 图数据库中的数据实体。
节点的表示:
(:Person {name: 'Anna'})
,Person是标签。该节点有属性:name,name属性的值为Anna(String)。 -
关联(关系)
在图中,节点通过关联连接。
(:Person{name:'Anna'})-[:KNOWS]->(:Person{name:'Mike'})
-
路径
由图中连接的节点和关系组成。包含节点和关系。Exploring these paths sits at the very core of Cypher.
节点的增删改查
(1)增
CREATE新增 node
bash
CREATE (:Person{name:"Lox",gender:"man",age:18})
使用MERGE新增
bash
MERGE (:Person{name:"Lox",gender:"man",age:18})
CREATE 和 MERGE新增节点的区别: CREATE直接新增一个节点;使用MERGE新增节点的时候,如果新增的节点已经存在,不会新增节点。
注意:就算节点没有标签、属性,仍然可以创建这个节点。
create (:Person)
下图的节点是没有详细信息的
(2)查
查询name为Lox的Person节点,返回们的age
有下面两种语句,关键字不区分大小写
MATCH (n:Person{name:"Lox"}) RETURN n.age
返回的是值
MATCH (n:Person) WHERE n.name="Lox" RETURN n.age
n可以理解为一个变量名,用该变量名接收结果。上面两个语句都可以实现
其他:
a.所有的节点都有一个id属性,可以通过id(节点变量名)来访问它。id唯一,系统自动创建的。
如果我们创建的节点有id属性,可以通过 id(n) 来访问系统赋予的 id 属性,通过 n.id 来访问我们设置的id属性。
(3)删
在删除和更改操作之前需要确定删除和更改的对象,通过MATCH来实现条件限制。
bash
MATCH (n:Person) WHERE n.name="Lox" AND n.gender="man" delete n
(4)改
如果更改的节点,没有该属性,则设置该属性。有的话更改属性值
bash
MATCH (n:Person) WHERE id(n)=100 SET n.age=20
修改之后: