Neo4j 框架 初步简单使用(基础增删改查)
Neo4j 是一个高性能的、开源的图数据库。它将数据存储为图结构,其中节点表示实体,边表示实体之间的关系。这种图数据模型非常适合处理复杂的关系型数据,能够高效地进行关系查询和遍历。
Neo4j 的主要特性包括:
强大的图查询语言 Cypher:Cypher 是一种专门为 Neo4j 设计的声明式查询语言,使得查询和操作图数据变得直观和高效。
创建两个节点
CREATE (p:Person {name: 'Likefr', age: 40}), (m:Person {name: 'Neo', age: 20})
查询节点
- 查询name为
Likefr
的节点
MATCH(p:Person{name: 'Likefr'}) return p
- 查询指定标签 Person的所有节点
MATCH(p:Person) return p
查询全部节点 (部分标签)
MATCH (n)
RETURN n
关联节点关系
- 1.创建节点时直接关联
CREATE (p1:Person {name: 'MseDa'}), (p2:Person {name: 'Bob'})
CREATE (p1)-[:KNOWS]->(p2)
RETURN p1, p2
- 2.将已有节点关联起来 (任何操作都是先把节点查出来在对其进行操作)
MATCH(p1:Person {name: 'MseDa'}), (p2:Person {name: 'Bob'})
create(p1)-[:KNOWS]->(p2)
新增或更新节点属性
MATCH (p:Person {name: 'MseDa'})
SET p.age = 31
更新关系属性
MATCH (p1:Person {name: 'MseDa'})-[r:KNOWS]->(p2:Person)
SET r.since = 2022
RETURN r
基本上操作都是一样 先使用MATCH 定义一个别名 把数据捞出来 在进行操作
删除节点
MATCH (p:Person {name: 'MseDa'})
DELETE p
- 删除多个节点
MATCH (p:Person {name: 'MseDa'}), (p2:Person {name: 'Alice2'})
DELETE p,p2
- 需要注意的是 如果删除的节点与其他节点有关联将无法删除并会抛出异常
意思就是: 该节点它仍然和别的节点有关系。要删除该节点,必须先删除其关系
删除关系
MATCH (p1:Person {name: 'MseDa'})-[r:KNOWS]->(p2:Person)
DELETE r
同时删除节点 和 关系
MATCH (p1:Person {name: 'MseDa'})-[r:KNOWS]->(p2:Person)
DELETE p1, r, p2
查询节点的属性值
create(el:lur{name: 'el',state: false})
match(el:lur{name: 'el'}) return el.state