赞
踩
本文将全面介绍Neo4j图数据库的基本操作,包括如何增加节点和关系、如何删除节点和关系、如何修改节点和关系的属性以及标签,以及如何进行查找操作。此外,还将分享一个实用的小技巧——如何快速清空Neo4j数据库中的所有数据。
目录
create (n:Person {name:'我',age:31})
CREATE
:这是Cypher查询中的关键字,用于指示数据库创建新的节点或关系。
(n)
:这是一个占位符,代表将要创建的节点。n
是一个变量名,你可以使用任何合法的变量名来代替它。
Person
:这部分定义了节点的标签(Label)。在这里,Person
是一个标签,表示这个节点属于“人”这一类别。在Neo4j中,标签可以用来表示实体或概念的类型。
{name:'我', age:31}
:这是一个属性(Property)映射,用来给节点设置属性。在这个例子中,节点n
有两个属性:name
和age
。name
属性被赋予了字符串值'我'
,而age
属性被赋予了整数值31
。综合起来,这条Cypher语句的作用是创建一个新的节点,这个节点具有
Person
标签,并且有两个属性:name
属性的值为'我'
,age
属性的值为31
。这个节点在数据库中是独一无二的,除非已经存在一个具有相同标签和属性值的节点。
再创建一个标签为Person,属性为“你”和“30”的节点
create (n:Person {name:'你',age:30})
create(p:Person{name:"我",age:"31"})-[:包工程{金额:10000}]->(n:Person{name:"好大哥",age:"35"})
create
是一个关键字,用于在数据库中创建新的节点和关系。(p:Person{name:"我",age:"31"})
创建一个新的节点p
,这个节点属于Person
标签,并具有两个属性:name
属性的值为"我"
,age
属性的值为"31"
。-[:包工程{金额:10000}]
创建一个新的关系,这个关系连接两个节点,关系的类型是包工程
,并且这个关系有一个属性金额
,其值为10000
。-> (n:Person{name:"好大哥",age:"35"})
指明了关系的另一个节点n
,这个节点同样属于Person
标签,并具有name
和age
两个属性,分别设置为"好大哥"
和"35"
。所以,整体来看,这段代码的作用是创建两个
Person
类型的节点,一个名为"我"
,年龄为31
,另一个名为"好大哥"
,年龄为35
,并在两者之间创建了一个类型为包工程
的关系,该关系有一个属性金额
,其值为10000
。
- // 查找这两个节点
- MATCH (n1:Person), (n2:Person)
- WHERE id(n1) = 1 AND id(n2) = 4
- // 创建关系,例如:n1是n2的父节点
- CREATE (n1)-[:借款{金额:1000}]->(n2)
创建一个TYD的节点,然后将其删除
create (n:Person {name:'TYD',age:31})
match (n:Person{name:"TYD"}) delete n
如下:发现就没有TYD这个节点了。
注意:在删除节点的时候,如果有关系存在,就要先删除关系,才能成功删除节点。 如下:
在这个问题中,想要删除标号为“2”的节点,但系统提示无法删除该节点,因为它仍然具有关系。
在图数据库或图模型中,节点和关系是一种基本的结构。关系用于连接节点,表示它们之间的连接。在删除一个节点之前,您必须先删除它的所有关系,否则系统将无法删除该节点。
在删除关系之前要先找到这个关系
match (p:Person{name:"我",age:"31"})-[f:包工程]->(n:Person{name:"好大哥",age:"35"}) delete f
首先,
match
关键字用于查找满足条件的节点和关系。在这个语句中,我们查找一个名字为“我”,年龄为“31”的Person
节点(p
),以及它和一个名字为“好大哥”,年龄为“35”的Person
节点(n
)之间的包工程
关系(f
)。接下来,
delete
关键字用于删除查找到的关系。在这个语句中,我们删除了f
关系。因此,这个语句的作用是:查找名字为“我”,年龄为“31”的
Person
节点和名字为“好大哥”,年龄为“35”的Person
节点之间的包工程
关系,并将它们删除。需要注意的是,这个语句只删除了关系,没有删除节点。
f
是用来引用在match
查询中找到的特定包工程
关系的别名。
f
是一个别名(alias),用于代表查询结果中的一个具体的包工程
关系(relationship)。
结果如下:节点“我”和节点“好大哥”之间的关系已经被删除了。
match (p:Person{name:"我",age:"31"})-[f:包工程]->(n:Person{name:"好大哥",age:"35"}) delete f,p,n
改操作可以改节点现有的属性或者标签,也可以增加节点新的属性或者标签。
本小节目的:给“好大哥”这个节点增加一个标签
"好大哥"这个节点的id是2
match (t:Person) where id(t)=2 set t:好人
结果如下:
a是一个别名,写成任何值,如p或者n都无所谓
match (a:好人) where id(a)=2 set a.战斗力=200 return a
将战斗力更改成500
match (a:好人) where id(a)=2 set a.战斗力=500 return a
match (p:Person) - [:借款] -> (n:Person) return p,n
MATCH (p:Person) - [:借款] -> (n:Person)
:
MATCH
是用来在图形数据库中查找模式的。这里,它寻找所有符合Person
类型的节点(p
和n
)。-[:借款]->
是关系路径,表示从一个Person
节点(p
)通过一个名为借款
的关系到达另一个Person
节点(n
)。->
指向关系的方向。
return p, n
:return
语句用于返回查询结果。在这个查询中,它会返回两个节点,p
和n
,作为查询结果的每一行。每行将包含匹配到的Person
对的组合。所以,这个查询的目的是找出所有
Person
类型的节点,其中有一个关系是借款
,并且这个关系连接了两个Person
节点,并返回这两个节点。结果将是一个包含借款关系的
Person
对列表。
MATCH (n) DETACH DELETE n
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。