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中文文档,此外还包括少量从其他个人博客与官方手 ...
随机推荐
- BZOJ 1083: [SCOI2005]繁忙的都市【Kruscal最小生成树裸题】
1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2925 Solved: 1927[Submit][Sta ...
- 数位dp初探
我这种蒟蒻就一直不会写数位dp.. 于是开了个坑.. 1833: [ZJOI2010]count 数字计数 这道被KPM大爷说是入门题..嗯似乎找找规律然后减掉0的情况后乱搞就可以了..(但是还是写了 ...
- 提交到svn服务器时,一直缓冲不,
1,服务器端url问题,正常:https://192.168.1.102:8443/svn/dedegls/ 错误:https:// ...
- dede织梦怎么修改description的字数
织梦在调用描述的时候都会使用description来调用描述,想要更改字数也可以控制调用的字数,但是就算是这样更改也是有字数限制的,描述的字数是不能没有限制. 在模板中调用描述的标签一般有四种: 1: ...
- CGI,FAST-CGI,PHP-FPM的区别
http://blog.csdn.net/xsgnzb/article/details/52875331 CGI全称Common Gateway Interface即公共网关接口,它遵循cgi规范,定 ...
- 阿里云部署SSL证书详解
http://mp.weixin.qq.com/s/NV7Zad4DVEgzG2GCHYJVLw 查找中间证书 为了确保兼容到所有浏览器,我们必须在阿里云上部署中间证书,如果不部署证书,虽然安装过程可 ...
- Python3 的序列
序列 1.根据列表.元组.字符串的共同点把它们统称为序列(他们都是兄弟呀) 1)都可以通过索引来的到每一个元素 2)默认索引值都是从零开始(Python也支持负数索引) 3)都可以通过分片(切片)的方 ...
- <script>的用法
<script> </script> 是指 在 HTML 页面中插入一段 JavaScript
- FORM ACTION=""
FORM ACTION="" 如果什么都不写,就表示提交到当前页
- uwsgi wsgi nginx centos7.2部署flask
请原谅我比较懒,直接粘贴onenote笔记了 方法一测试完成后,建议用方法三:uwsgi,ginx部署