Neo4j常用的查询

栏目: 数据库 · 发布时间: 5年前

一、添加操作

1. 添加节点:

create (x:学生{studentId:'1001',age:20}

2. 添加关系:

对现有的节点添加关系

match (x:学生{studentId:1001}),(y:教师{tid:'09'}) create (x)-[jx:课程{name:'高数'}]->(y)

添加节点并添加关系

create (x:学生{studentId:1001})-[jx:课程{name:'高数'}]->(y:教师{tid:'09'})

二、删除操作

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()

暂时先写这么多吧,想起来了再添加


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员修炼之道

程序员修炼之道

Andrew Hunt、David Thomas / 马维达 / 电子工业出版社 / 2005-1 / 48.00元

《程序员修炼之道》由一系列的独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术。利用许多富有娱乐性的奇闻轶事、有思想性的例子以及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。无论你是初学者,是有经验的程序员,还是软件项目经理,本书都适合你阅读。一起来看看 《程序员修炼之道》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换