neo4j模糊查询

我与Neo4j用户一起工作时经常看到的一种建模方法是创建非常通用的关系(例如HAS,CONTAINS,IS),并在关系属性或端节点的属性/标签上进行过滤。

——-----------------

create (x:Node {属性名:‘属性值’})
match (x),(y) where x.属性=‘’ and y.属性=‘属性值’ create (x)-[r:关系名{关系属性:属性值}]->(y)
CALL db.labels()
match (x) where x.属性 contains ‘’ return x

标题原文链接:https://www.cnblogs.com/mzyn22/p/11098285.html

一、添加操作

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® 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 Cypher语言相关推荐

  1. Neo4j / Cypher语言学习

    文章目录 1. 普通的Match: 查找John和John的朋友 2. 添加过滤条件的查询 3. 基础知识 模式 节点语法 关系语法 更新语句 返回语句 4. 唯一性 5. 设置Cypher查询的版本 ...

  2. neo4j基本知识及Cypher语言

    文章目录 1. neo4j中的基本概念 2. Cypher语言 1. neo4j中的基本概念 节点(node):表示一个实体记录.一个节点包含多个属性和标签,如上图中的Tom Hanks.Sleepl ...

  3. neo4j︱Cypher完整案例csv导入、关系联通、高级查询(三)

    图数据库常规的有:neo4j(支持超多语言).JanusGraph/Titan(分布式).Orientdb,google也开源了图数据库Cayley(Go语言构成).PostgreSQL存储RDF格式 ...

  4. neo4j︱Cypher 查询语言简单案例(二)

    图数据库常规的有:neo4j(支持超多语言).JanusGraph/Titan(分布式).Orientdb,google也开源了图数据库Cayley(Go语言构成).PostgreSQL存储RDF格式 ...

  5. neo4j cypher_优化Neo4j Cypher查询

    neo4j cypher 上周,我花了很多时间来尝试优化大约20个使用实时系统数据执行的灾难性的Cypher查询(36866ms至155575ms). 经过一番尝试和错误,以及来自Michael的大量 ...

  6. neo4j / cypher:悬挂查询参数

    一直以来,我一直在使用neo4j的密码查询语言, 迈克尔一直在告诉我在查询中使用参数,但是查询的性能始终可以接受,因此我没有必要. 但是,最近我正在研究一个数据集,并使用类似于以下的代码创建了约500 ...

  7. 优化Neo4j Cypher查询

    上周,我花了很多时间尝试使用实时系统中的数据来优化大约20个执行失败的Cypher查询(36866ms至155575ms). 经过一番尝试和错误,以及来自Michael的大量投入,我能够大致确定对查询 ...

  8. Neo4J Cypher neo4j-driver py2neo介绍与使用

    Neo4J Cypher neo4j-driver介绍与使用 neo4j介绍 关系型数据库和图数据库 图数据库的基本概念 Nodes Labels Relationship RelationshipT ...

  9. neo4j cypher操作

    neo4j cypher操作 文章目录 neo4j cypher操作 neo4j CMD命令 前言 1增加 1.1 增加节点 1.2 查询节点 2 关系 2.1 创建关系 2.2 查询关系 3 删除 ...

最新文章

  1. 机器学习数据预处理之缺失值:特征删除
  2. 图灵奖得主、AAAI候任主席展望“AI未来10年”
  3. Robotium中定位Android客户端疑难元素
  4. 海量数据处理之Bloom Filter详解
  5. EOS账户系统(8)密钥被盗恢复
  6. linux使用技巧:自动补全、常用快捷键* ? [] {}
  7. php+html5+jquery断点续传_PHP学习路线:PHP从入门到精通教程
  8. 三年了总觉的还是该写点什么
  9. Python ValueError: IO operation on closed file
  10. C#细说多线程(下)
  11. laravel的重定向
  12. 【论文阅读-Bidding】《Real-Time Bidding Algorithms for Performance-Based Display Ad Allocation,2011年,微软》...
  13. python计算并返回任意多个整数的和_利用Python的多重处理方法计算一个长输入lin的整数和...
  14. presto查询报错
  15. 《人月神话》出版后的网友评论
  16. Win7-64位系统安装vs2003
  17. GBASE 8s UDR内存管理_03_mi_realloc
  18. java csrf 跨域_Django跨域请求CSRF的实例方法
  19. 作文第一次用计算机350,第一次作文350字
  20. 你为什么要去做微商?

热门文章

  1. 什么是webpack打包工具以及其优点用法
  2. 湿法后道清洗药液及设备的研究
  3. 健身行业需求分析与解决方案-捷径体系
  4. [凯立德]2014年秋季版3225JOK全分辨率全卡名重力转向
  5. 美国各种床上用品的尺寸合集:Twin、Full、Queen、King
  6. LeetCode495——提莫攻击
  7. 精选Android中高级面试题 -- 终局之篇:高级干货
  8. CTEX并排插入图片
  9. 元宇宙+教育,正在引发哪些剧烈变革?机会在哪里?丨圆桌实录
  10. 如何下载网页视频(bilibili,爱奇艺等)