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节点没有链接
结果:
转载于:https://www.cnblogs.com/divenswu/p/3441755.html
Cypher查询语言--Neo4j-WHERE(三)相关推荐
- Cypher查询语言--Neo4j中的SQL
Cypher查询语言--Neo4j中的SQL 转自:http://www.uml.org.cn/sjjm/201203063.asp "Cypher"是一个描述性的图形查询 ...
- Cypher查询语言--Neo4j中的SQL(6)
排序(Order by) 输出结果排序可以使用order by 子句.注意,不能使用节点或者关系排序,仅仅只针对其属性有效. 图: 通过节点属性排序节点 查询: START n=node(3,1,2) ...
- neo4j︱Cypher 查询语言简单案例(二)
图数据库常规的有:neo4j(支持超多语言).JanusGraph/Titan(分布式).Orientdb,google也开源了图数据库Cayley(Go语言构成).PostgreSQL存储RDF格式 ...
- 读书笔记——Neo4j实战 Cypher查询语言
Cypher是对图形的声明查询语言, 使用图形模式匹配作为主要的机制作图形数据选择(包括只读和变更操作) . Cypher的声明模式匹配性质意味着可以通过描述想从它那里得到什么查询图形数据. 执行Cy ...
- Cypher查询语言
背景介绍 属性图模型以及其上的Cypher查询语言最早定义于著名的图数据库系统--Neo4j.Neo4j是由Neo4j公司开发的图数据库系统,其起源于2000年Neo4j的创始人开发的多媒体资产管理系 ...
- Spring认证中国教育管理中心-Spring Data Neo4j教程三
原标题:Spring认证中国教育管理中心-Spring Data Neo4j教程三(Spring中国教育管理中心) 6.2.处理和提供唯一 ID 6.2.1.使用内部 Neo4j id 为您的域类提供 ...
- 知识图谱:属性图数据模型与Cypher查询语言
属性图数据模型 属性图模型简介 属性图模型是一种不同于RDF 三元组的一种图数据模型 这个模型由点来表示现实世界中的实体,由边来表示实体与实体之间的关系.同时,点和边上都可以通过键值对的形式被关联上任 ...
- Neo4j Cypher查询语言详解
Cypher介绍 "Cypher"是一个描述性的图形查询语言,允许不必编写图形结构的遍历代码对图形存储有表现力和效率的查询.Cypher还在继续发展和成熟,这也就意味着有可能会出现 ...
- 【知识图谱】Neo4j Cypher查询语言详解
Cypher 语法学习 Cypher 介绍 启动 Neo4j 基本类型 数值,布尔,字符串 节点和关系 列表 匹配语句 根据标签匹配节点 根据标签和属性匹配节点 匹配任意关系 可选匹配 过滤匹配 路径 ...
- Neo4J 与 Cypher 查询语言基础
前言 图数据库,存储的是节点和关系,而不是表.在Neo4j中,节点和关系都由属性和标签描述. 在 Cypher 查询语句中,节点和关系的表述一般为: 节点:(Variable:Label1:Label ...
最新文章
- 其他算法-SVD奇异值分解
- POJ 2728 Desert King [最优比率生成树]
- 30岁二刷博士,17个月发6篇一作获顶会最佳!现实版人生重开模拟器
- 【JavaSE01】初识Java-思维导图
- 使用Mono将C#编译运行至WebAssembly平台
- 被自己的行为蠢哭了,意识到原因后真香!
- Multi-thread--C++11中atomic的使用
- 使用HanLP分词时,词性标注错误的问题
- 单点登录CAS-01:如何找到适合自己JDK版本的CAS?
- 会考计算机考试题,初中信息技术会考试题
- 【最短路】【spfa】CDOJ1633 去年春恨却来时,落花人独立,微雨燕双飞
- Redis数据倾斜与JD开源hotkey源码分析揭秘
- 2018年新媒体趋势解读:大航海时代结束,圈地运营开始
- Kubernetes核心原理(二)之Controller Manager
- win10连接android手机助手下载,完美win10手机助手-Win10手机助手v1.0.1 官方免费版下载_飞翔下载...
- Centos6.6下编译安装Apache2.2.31
- html渐变轮播,html简单的渐变轮播插件
- 什么是文件管理软件?你为什么需要它?
- ISIS Neighbor Net Type DIS
- Linux命令--arp--使用/实例
热门文章
- php获取网络文件的几种方式,PHP如何实现获取网络上的文件?
- 收集一些常用的正则表达式
- apk私钥_获取APK证书MD5、SHA1、SHA256等秘钥
- Java IO 节点流与处理流类型
- figma下载_何时在Figma中使用组或框架
- linux go环境安装和基本项目结构
- C# System.Windows.Forms.NumericUpDown 控件全选其中文字
- offsetTop、offsetLeft、offsetWidth、offsetHeight、style中的样式
- Java EE启示录
- es6(五):函数的扩展