Neo4j常用的查询
一、添加操作
1. 添加节点:
create (x:学生{studentId:'1001',age:20}
2. 添加关系:
对现有的节点添加关系
match (x:学生{studentId:1001}),(y:教师{tid:'09'}) create (x)-[jx:课程{name:'高数'}]->(y)
match (x:学生),(y:教师) where x.studentId='1001' and y.tid='09' create (x)-[jx:课程{name:'高数'}]->(y)
添加节点并添加关系
create (x:学生{studentId:1001})-[jx:课程{name:'高数'}]->(y:教师{tid:'09'})
3. 根据节点的ID创建关系
match (x:学生),(y:教师) where id(x)=254885 and id(y)=554896 create (x)-[jx:课程{name:'高数'}]->(y)
二、删除操作
1. 删除节点:
match (x:学生{studentId:1001}) delete x
2. 删除关系:
match (x:学生{studentId:1001})-[jx:课程{name:'高数'}]->(y:教师{tid:'09'}) delete jx
3. 删除关系的同时,删除数据:
match (x:学生{studentId:1001})-[jx:课程{name:'高数'}]->(y:教师{tid:'09'}) delete x,jx,y
三、修改节点
1. 给节点添加一个新的属性,两种方式:
match(x:学生{studentId:'1001'}) set x.age=21 return x
match(x:学生{studentId:'1001'}) set x+={age:21} return x
2. 给节点添加属性并删除现有属性
match(x:学生{studentId:'1001'}) set x={age:21,name:'abc'} //注意这里,会将studentId属性删除
3. 添加新标签:
match(x:学生{studentId:'1001'}) set x:男生 return x //添加一个标签
match(x:学生{studentId:'1001'}) set x:男生:团员 return x //添加多个标签
四、查询操作
1. 根据节点属性查找对应节点:
match(x:Student{studentId:'1001'}) return x
或者
match(x:Student) where x.studentId='1001' return x
2. 根据关系查找节点
match (x)-[r:教学内容]-(y) where r.课程='语文' return x,r,y
3. 查询单独的节点,即:与其他任何节点没有任何关系
match(x) where not (x)-[]-() return x
4. 查询N层关系的节点:
match q=(x)-[*5..8]-() return q limit 200 这个为查询5到8层关系的
match q=(dh)-[r]-(jq)-[rr]-()-[]-()-[]-()-[]-()-[]-()-[]-() return q limit 400
5. 查询节点关系数个数:
match(dh:`学生`)-[r]-(jq:`老师`) with dh, count(r) as dhs where dhs > 2 return dh
6. 查询节点个数:
match(x) return count(x)
7. 查询所有的关系类型:
CALL db.relationshipTypes()
8. 查询所有的节点标签:
CALL db.labels()
9. 查询节点关系种类:
CALL db.schema()
10. 最短路径查询
MATCH (x:电话{hm:"02711111111"}),(y:电话{sjdbh:"025111111111"}),p=shortestpath((x)-[*..10]-(y))RETURN p
11. 查询不存在某个属性的节点
match(x:电话) where x.repeat is null with x match p=(x)-[r*1..5]-(y) return p
12. 查询存在关联到某一个节点具有相同属性的其他的节点
match p=(x)-[]-()-[]-(y) where x.name=y.name return p
13. 查询两个节点之间存在多个关系的节点
match p=(x)-[r1]-(y)-[r2]-(x) where id(r1)<>id(r2) return p
14. 查询某一个节点具有m到n层关系的所有的节点
match q=(x:学生)-[*1..5]-() where x.no ='201921011XXXX' return q #查询某学生有关系的节点,最多五层关系
暂时先写这么多吧,想起来了再添加,如果有需要其他的查询,欢迎留言
Neo4j常用的查询的更多相关文章
- neo4j 常用命令查询,以及更新 节点 的 label 名 和  property  名
		常用命令查询 https://neo4j.com/docs/cypher-refcard/current/ 更新节点的 labels 有时候 发现节点的 label 名字起错了怎么修改呢?!一个节点是 ... 
- MySQL常用的查询命令
		MySQL常用的查询命令 author: headsen chen 2017-10-19 10:15:25 个人原创.转载请注明作者,出处,否则依法追究法律责任 1,查询现在的时间:mysql& ... 
- mysql常用快速查询修改操作
		mysql常用快速查询修改操作 一.查找并修改非innodb引擎为innodb引擎 # 通用操作 mysql> select concat('alter table ',table_schema ... 
- Neo4j使用Cypher查询图形数据
		Neo4j使用Cypher查询图形数据,Cypher是描述性的图形查询语言,语法简单,功能强大,由于Neo4j在图形数据库家族中处于绝对领先的地位,拥有众多的用户基数,使得Cypher成为图形查询语言 ... 
- HTML常用标签查询
		JAVA开发避免不了要接触前端,所以我不得不从0开始学习前端内容!下面分享我自己总结的HTML常用标签查询代码:将下面代码复制粘贴到文本文档,然后另存为html格式;通过file:///文档保存路径的 ... 
- [转] 常用SQL查询语句
		sunada 的原文地址 常用SQL查询语句 一.简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SELECT * FROM emp; 3. 查询指 ... 
- Django——7 常用的查询   常用的模型字段类型   Field的常用参数    表关系的实现
		Django 常用的查询 常用的查询方法 常用的查询条件 常用字段映射关系 Field常用参数 表关系的实现 查用的查询方法 这是需要用到的数据 from django.http import Htt ... 
- elasticsearch 基础 —— Common Terms Query常用术语查询
		常用术语查询 该common术语查询是一个现代的替代提高了精确度和搜索结果的召回(采取禁用词进去),在不牺牲性能的禁用词. 问题 查询中的每个术语都有成本.搜索"The brown fox& ... 
- Oracle常用SQL查询(2)
		三.查看数据库的SQL 1 .查看表空间的名称及大小 select t.tablespace_name, round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ... 
随机推荐
- angular2事件触发
			输入框输入过程触发Select()方法. <input type="text" name="code" [(ngModel)]="code&qu ... 
- DEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作。
			把"Perform code analysis" 和 "Check TODO" 复选框前面的勾去掉就好了. 这个可能是因为所分析的目标文件太大了,造成一直分析不 ... 
- SSH dao层异常 org.hibernate.HibernateException: No Session found for current thread
			解决方法: 在 接口方法中添加 事务注解 即可. public interface IBase<PK extends Serializable, T> { @Transactional v ... 
- ID生成算法(二)
			上一篇文章介绍了一种用雪花算法生成GUID的方法,下面介绍里外一种生成GUID并导出为.txt文件的方法: 话不多少 show you the code ! <!DOCTYPE html> ... 
- mysql PS1个性化
			method ) $ export MYSQL_PS1="\u@\h [\d]> " method ) mysql> prompt \u@\h [\d]> met ... 
- StrictMode 详解
			StrictMode类是Android 2.3 (API 9)引入的一个工具类,可以用来帮助开发者发现代码中的一些不规范的问题.比如,如果你在UI线程中进行了网络或者磁盘操作,StrictMode就会 ... 
- 第四章 基本TCP套接字编程 第五章 TCP客户/服务器程序实例
			TCP客户与服务器进程之间发生的重大事件时间表 TCP服务器 socket() --- bind() --- listen() --- accept() --- read() --- write -- ... 
- [Java]两个将秒数转化为日时分秒形式的函数
			比如900秒要反应一下,说15分就直观了.下面两个函数性能差不多,大家任意取用. 代码: import java.util.concurrent.TimeUnit; public class Test ... 
- MediaPlayer: 在不同控件之间实现视频的无缝切换的方法
			最近使用MediaPlayer + TextureView 实现了一个视频播放器,并且实现了它的横竖屏切换的效果,唯一美中不足的是在横竖屏切换的时候画面会卡顿一下,虽然也不影响播放,但是怕测试会报Bu ... 
- [转][C#]Oracle 连接错误的解决
			错误1: .NET连接oracle,提示错误OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用 两个原因: 1. 权限,把 Oracle 所在目录权限设置成 authenticat ... 
