neo4j日常管理

 

1.官网文档地址

https://neo4j.com/docs/operations-manual/current/

 

2.查看都有那些表

 

neo4j@neo4j> CALL db.labels() YIELD label
             RETURN label;
+----------+
| label    |
+----------+
| "Person" |
| "User"   |
+----------+

 

 

查看索引

show indexes;

 

 

 

2.删除所有关系为SON的关系

match p=()-[r:SON]->() delete r

 

3.创建节点和关系

创建节点
create (p:person{name:"贾宝玉",sex:"",age:"16",hobby:"女孩子"})
create (p:person{name:"林黛玉",sex:"",age:"14",hobby:"葬花"})
create (p:person{name:"贾政",sex:"",age:34,hobby:"装正经",prof:"工部员外郎"})

创建关系
match (p1:person{name:"贾宝玉"}),(p2:person{name:"贾政"}) create (p1)-[r:父亲]->(p2) return p1,p2
match (p1:person{name:"贾宝玉"}),(p2:person{name:"林黛玉"}) create (p1)-[r:表妹]->(p2) return p1,p2
match (p1:person{name:"贾政"}),(p2:person{name:"林黛玉"}) create (p1)-[r:外甥女]->(p2) return p1,p2
match (p1:person{name:"贾政"}),(p2:person{name:"贾宝玉"}) create (p1)-[r:儿子]->(p2) return p1,p2
match (p1:person{name:"林黛玉"}),(p2:person{name:"贾宝玉"}) create (p1)-[r:表哥]->(p2) return p1,p2
match (p1:person{name:"林黛玉"}),(p2:person{name:"贾政"}) create (p1)-[r:舅舅]->(p2) return p1,p2

 

 

创建带有属性的关系DO_SHOPPING_WITH
MATCH (cust:Customer{id:"1001"}),(cc:CreditCard{id:"5001"})
CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc)
RETURN r

 

4.删除两个节点之间的指定关系,
删除贾宝玉->父亲->贾政这对关系
match(n:person{name:"贾宝玉"})-[r:父亲]->(m:person{name:"贾政"}) delete r

 之前前后的对比

 

 

5.查询某个表
MATCH (n:person) RETURN n

 

6.查询所有表
match(n) return n

  

7.查询某个节点
match(n:person) where n.name="贾宝玉" return n
或是通过id查询
match(n:person) where where id(n)=4 return n

 

8.条件查询

 

整个图谱(所有的表)查询
match(n)
where n.name ="张三" or n.name = "李四"
return n

 


单个表查询
match(n:myfamily)
where n.name ="张三" or n.name = "李四"
return n

 

整个图谱中返回有儿子关系的节点
match(n)-[r:儿子]->(m) return n,m

 

整个图谱查找儿子是 张三 的所有节点

match(n)-[:儿子]->(m) WHERE m.name = '张三' return n,m

 

 

 

查看整个图谱所有的节点总数
MATCH (n)
RETURN COUNT(n) AS totalNodes;

 

查看具体某个标签的节点总数
MATCH (n:myfamily)
RETURN COUNT(n) AS total_myfamily;

 

 

查找关系为 儿子 的记录总数
MATCH ()-[r:儿子]->()
RETURN COUNT(r) AS totalKnowsRelationships;

 

in查询

match(n) where n.name in ["张三","李四"] return n

 

 

模糊匹配
类似like '%宝%'
MATCH (n)
WHERE n.name =~ '.*宝.*'
RETURN n

 

返回任意关系为 父亲 和 儿子的所有节点关系
MATCH p=(n)-[:父亲|:儿子]->(m) RETURN p

 

9.索引

创建索引
CREATE INDEX idx_person_name FOR (p:person) ON (p.name)

查看索引
SHOW INDEXES

删除索引
drop index idx_person_name

 

 

 

10.删除某个标签
MATCH (n:Person)
DETACH DELETE n

 

MATCH (n:Company)
DETACH DELETE n

 

 

11.删除所有数据(包括节点、关系,唯一性约束和索引无法删除)
MATCH (n)
DETACH DELETE n;

 

12.查看执行计划

EXPLAIN MATCH (p:User {name: 'User_20005'}) RETURN p;

 

PROFILE MATCH (p:User {name: 'User_20005'}) RETURN p;

 

13.查找最短路径

 

MATCH (p:User {name: "User_20005"}), (m:Company {name: "Company_4104"})
MATCH path = shortestPath((p)-[*]-(m))
RETURN path

 

14.查找节点关系链路

查询节点为24所有的节点和关系,一条链线关系

MATCH (n:Company)-[r]-(m) where id(n)=24 return n,r,m
m没有具体写标签,代表是查询所有的标签

 

 

查找所有标签中姓名为User_20005的关系链路
MATCH (n)-[r]-(m) where n.name='User_20005' return n,r,m

 

只查找最近的一层关系链路的查询

MATCH p=(a)-[*..1]-(b)
WHERE a.name='User_20005'
RETURN p

 

15.查看apoc版本

return apoc.version();

posted @ 2025-06-24 18:19  slnngk  阅读(21)  评论(0)    收藏  举报