Cypher查询语言--Neo4j-WHERE(三)
目录
- Where
- Boolean 操作类型
- 节点属性上的过滤
- 正则表达式
- 转义正则表达式
- 不分大小些正则表达式
- 关系类型上的过滤
- 属性存在性
- 如果缺失属性默认为true
- 如果缺失属性默认为false
- 空置null过滤
- 关系过滤
Where
如果需要从查找的数据的图中过滤,可以在查询语句中添加where子句。
图:
Boolean 操作类型
可以使用boolean操作符and 和 or 或者也可以使用not()函数。
查询:
START n=node(3, 1)
WHERE (n.age < 30 and n.name = "Tobias") ornot(n.name = "Tobias")
RETURN n
返回节点。
结果:
节点属性上的过滤
查询:
START n=node(3, 1)
WHERE n.age < 30
RETURN n
结果:
正则表达式
可以通过使用=~ /regexp/
来匹配正在表达式。如下:
查询:
START n=node(3, 1)
WHERE n.name =~ /Tob.*/
RETURN n
返回名叫Tobias的节点。
结果:
转义正则表达式
如果在正则表达式中需要有斜杠时可以通过转义实现。
查询:
START n=node(3, 1)
WHERE n.name =~ /Some\/thing/
RETURN n
没有匹配的节点返回。
结果:
不分大小些正则表达式
在正则表达式前加上?i,整个正则表达式将会忽略大小写。
查询:
START n=node(3, 1)
WHERE n.name =~ /(?i)ANDR.*/
RETURN n
属性name为Andres的节点将返回
结果:
关系类型上的过滤
可以match模式中通过添加具体的关系类型,但有时需要针对类型的更加高级的过滤。可以使用明确的type属性来对比,查询对关系类型名作一个正则比较。
查询:
START n=node(3)
MATCH (n)-[r]->()
WHERE type(r) =~ /K.*/
RETURN r
关系整个以K开始的类型名都将返回。
结果:
属性存在性
查询:
START n=node(3, 1)
WHERE n.belt
RETURN n
结果:
如果缺失属性默认为true
仅当属性存在时,比较一个图的元素的此属性,使用允许空属性的语法。
查询:
START n=node(3, 1)
WHERE n.belt? = 'white'
RETURN n
所有节点即使没有belt属性的 都将返回。此类比较返回为true。
结果:
如果缺失属性默认为false
需要在缺失属性时为false,即不想返回此属性不存在的节点时。使用感叹号。
查询:
START n=node(3, 1)
WHERE n.belt! = 'white'
RETURN n
结果:
空置null过滤
有时候需要测试值或者标识符是否为null。与sql类似使用 is null 或 not(is null x)也能起作用。
查询:
START a=node(1), b=node(3, 2)
MATCH a<-[r?]-b
WHERE r is null
RETURN b
Tobias节点没有链接上。
结果:
关系过滤
为过滤两点间基于关系的子图,在match子句中使用限制部分。可以描述带方向的关系和可能的类型。这些都是有效的表达:WHERE a-→b WHERE a←-b WHERE a←[:KNOWS]-bWHERE a-[:KNOWS]-b
查询:
START a=node(1), b=node(3, 2)
WHERE a<--b
RETURN b
Tobias节点没有链接
结果:
Cypher查询语言--Neo4j-WHERE(三)的更多相关文章
- Cypher查询语言--Neo4j 入门 (一)
目录 操作符 参数 标识符 注解 Start 通过id绑定点 通过id绑定关系 通过id绑定多个节点 所有节点 通过索引查询获取节点 通过索引查询获取关系 多个开始点 Cypher是一个描述性的图形 ...
- Cypher查询语言--Neo4j 之高级篇 (六)
目录 排序Order by 通过节点属性排序节点 通过多节点属性排序节点 倒序排列节点 空值排序 Skip 跳过前三个 返回中间两个 Limit 返回第一部分 函数Functions 判断 All A ...
- Cypher查询语言--Neo4j之聚合函数(五)
目录 聚合Aggregation 计数 计算节点数 分组计算关系类型 计算实体数 计算非空可以值数 求和sum 平均值avg 最大值max 最小值min 聚类COLLECT 相异DISTINCT 聚合 ...
- Cypher查询语言--Neo4j 综合(四)
目录 返回节点 返回关系 返回属性 带特殊字符的标识符 列的别名 可选属性 特别的结果 查询中的返回部分,返回途中定义的感兴趣的部分.可以为节点.关系或其上的属性. 图 返回节点 返回一个节点,在 ...
- CYPHER 语句(Neo4j)
CYPHER 语句(Neo4j) 创建电影关系图 新增 查找 修改 删除 导入 格式转换 创建电影关系图 CREATE (TheMatrix:Movie {title:'The Matrix', re ...
- Neo4j 第三篇:Cypher查询入门
本文转载自:https://www.cnblogs.com/ljhdo/p/5516793.html Neo4j使用Cypher查询图形数据,Cypher是描述性的图形查询语言,语法简单,功能强大,由 ...
- Neo4j Cypher查询语言详解
Cypher介绍 "Cypher"是一个描述性的图形查询语言,允许不必编写图形结构的遍历代码对图形存储有表现力和效率的查询.Cypher还在继续发展和成熟,这也就意味着有可能会出现 ...
- Cypher查询语言--Neo4j-MATCH(二)
目录 Match 相关节点 接出关系Outgong relationship 定向关系和标识符 通过关系类型匹配 通过关系类型匹配和使用标识符 带有特殊字符的关系类型 多重关系 可变长度的关系 在可变 ...
- Neo4j/cypher学习笔记与学习建议
简介 本笔记的主要内容是 cypher 查询语言的编写与使用. 笔记主要整理自w3cschool上的neo4j教程以及Neo4j中文网所提供的cypher中文文档,此外还包括少量从其他个人博客与官方手 ...
随机推荐
- 详解zkw算法解决最小费用流问题
网络流的一些基本概念 很多同学建立过网络流模型做题目, 也学过了各种算法, 但是对于基本的概念反而说不清楚. 虽然不同的模型在具体叫法上可能不相同, 但是不同叫法对应的思想是一致的. 下面的讨论力求规 ...
- AtCoder Regular Contest 077
跟身在国外的Marathon-fan一起打的比赛,虽然最后没出F但还是涨分了. C - pushpush 题意:n次操作,每次往一个序列后面塞数,然后把整个序列翻转. #include<cstd ...
- [bzoj2157]旅游 (lct)
这个应该也算裸的模板题吧..主要是边权的问题,对于每条边u->v,我们可以新建一个节点代替他,把边的信息弄到新的点上,就变成u->x->v了... 当然了这样的话要防止u和v这些没用 ...
- 【新版】Android技术博客精华汇总
[新版]Android技术博客精华汇总(原文链接内持续更新) http://www.apkbus.com/thread-313856-1-1.html Kotlin Kotlin学习资料汇总 http ...
- 从零开始学习前端开发 — 16、CSS3圆角与阴影
一.css3圆角: border-radius:数值+单位; 1.设置一个值:border-radius:20px; 四个方向圆角都为20px(水平半径和垂直半径相等) 2.设置两个值 border- ...
- SSL证书绑定成功
LNMPA一键安装包:装好后, 静态文件用nginx服务器,php文件用Apache服务器, 默认Apache端口为88:nginx为80: SSL证书装之前80端口, 装好后用443端口:
- TCP三次握手机制中的seq和ack
TCP连接的三次握手:第一次(A--->B),SYN=1,seq=x第二次(B--->A),SYN=1,ACK=1,seq=y,ack=x+1 第三次(A--->B),ACK=1,s ...
- javascript函数之arguments
function foo(x,y,z){ console.info (arguments.length); //2 实际的参数个数 console.info(arguments[0]); //传入的第 ...
- (1-2)SpringCloud:服务的消费者rest+ribbon
服务发现的任务是由Eureka客户端完成,而服务的消费任务由Ribbon完成.Ribbon是一个基于HTTP和TCP的客户端负载据衡器,它可以通过客户端中配置ribbonServerList服务端列表 ...
- scrapy_ItemLoader
什么是Itemloader? 一种容器,实现直白高效字段提取 直接赋值取值的方式,会出现一下几个问题 代码量一多,各种css和xpath选择器,充斥整个代码逻辑,没有规则,不利于维护 对于一个字段的预 ...