neo4j进阶语法与脚本编写

本文详细介绍了Neo4j图数据库的Cypher查询语言,包括查询当前用户、元数据关系、实体关系、条件查找、查询计划、去重、排序分页、合并查询、使用WITH语法、添加索引、删除操作、批量数据处理和自动化脚本等。此外,还提到了Apoc库在批量操作和关系匹配中的应用。
摘要由CSDN通过智能技术生成

1. 注释

注释: 所有cypher脚本语言使用’//'来注释

 

2. 查询

2.1 查看当前用户

CALL dbms.showCurrentUser();

 
2.2 查看所有类型元数据关系

CALL db.schema.visualization()

 
如下所示,展示了实体集合的所有关系

在这里插入图片描述

 
2.3 查询某一实体的所有关系,数据量大注意用limit限制,防止内存溢出

MATCH p=(n:zly_demo_diff_type)-[r]-() return p

 
2.4 通过条件查找某一实体

match (n:person) where n.age=24 return n

 
2.5 查询计划

explain

在这里插入图片描述

 

2.6 对结果集进行去重查询

match (n) return distinct n.name;

2.7 对查询结果进行排序和分页
 

MATCH (a:Person)-[:ACTED_IN]->(m:Movie)RETURN a,count(*) AS appearancesORDER BY appearances DESC SKIP 3 LIMIT 10;

 
2.8 合并查询(两个结果集结构相同)

MATCH (actor:Person)-[r:ACTED_IN]->(movie:Movie)
RETURN actor.name AS name, type(r) AS acted_in, movie.title AS title
UNION (ALL)
MATCH (director:Person)-[r:DIRECTED]->(movie:Movie)
RETURN director.name AS name, type(r) AS acted_in, movie.title AS title

 
2.9 with语法(参考hive with as语法,用法类似)

注意with的结果集必须要有命名,对with的结果在做where条件筛选

MATCH (n:Person)-[r:ACTED_IN]->(o:Movie) with o,count(r) as count_r where count_r > 8 RETURN o

 
2.10 添加索引,并使用索引快速找到节点(数据量大,构建关系、查找实体和关系)

//创建索引
create index on:actor(name)

//使用带有索引的属性快速查找节点
MATCH (n:actor { name: "T
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值