WHERE 用于为 MATCH,OPTIONAL MATCH 和 WITH 语句添加过滤条件,来源SQL语言。

限定条件WHERE

# 查询人名为”Peter“或者年纪大于30人名不为”Timothy“的人,或者人名既不为”Timothy“也不为”Peter"的人(进行过滤)
# 查询人名不为”Peter“或者年纪小于30人名为”Timothy“的人,或者人名既不为”Timothy“也不为”Peter"的人(进行过滤)
MATCH (n:Person)
WHERE n.name = 'Peter' XOR (n.age < 30 AND n.name = 'Timothy') OR NOT (n.name = 'Timothy' OR n.name = 'Peter')
RETURN n.name, n.age

对label进行过滤

# 对标签过滤
MATCH (n)
WHERE n:Person
RETURN n.name, n.age# 与下面这个命令作用相同
MATCH (n:Person)
RETURN n.name, n.age

不固定属性的过滤

# 查询Person这个类型标签中age<30的人
with 'AGE' as propname
match (n:Person)
where n[toLower(propname)] < 30
return n.name, n.age

属性存在性校验

# 查询存在age属性的人,如果查询到了返回,查询不到没有任何返回信息
MATCH (n:Person)
WHERE exists(n.age)
RETURN n.name, n.age# 查询存在age属性的人,不管能否查到都有返回信息(查询不到会返回包含key的空字典)
OPTIONAL MATCH (n:Person)
WHERE exists(n.age)
RETURN n.name, n.age

匹配字符串开头

MATCH (n:Person)
WHERE n.name STARTS WITH 'St'
RETURN n.name, n.age

匹配字符串结尾

MATCH (n:Person)
WHERE n.name ENDS WITH 'ter'
RETURN n.name, n.age

匹配字符串包含

MATCH (n:Person)
WHERE n.name CONTAINS 'ete'
RETURN n.name, n.age

NOT 的使用

MATCH (n:Person)
WHERE NOT n.name ENDS WITH 'y'
RETURN n.name, n.age

正则表达式的使用

# 正则匹配=~
MATCH (n:Person)
WHERE n.name =~ 'Tim.*'
RETURN n.name, n.agez# 正则不区分大小写(?i)
MATCH (n:Person)
WHERE n.name =~ '(?i)AND.*'
RETURN n.name, n.age

根据null过滤

# 查询人名为“Peter",年龄为空的人(或者没有年龄属性的人)
MATCH (person:Person)
WHERE person.name = 'Peter' AND person.age IS NULL RETURN person.name

图数据库(七):Neo4j中Cypher语言where关键字相关推荐

  1. 图数据库(八):Neo4j中Cypher语言with关键字

    WITH 用于向后面的语句传递指定结果,并可以改变结果集中实体的形式和数量.注意,WITH 会影响查询结果集里的变量,WITH 语句外的变量不会传递到后续查询中. 对结果进行筛选 # 聚合函数进行筛选 ...

  2. 图数据库(九):Neo4j中Cypher语言unwind关键字

    UNWIND用于将任何列表变回单独的行.这些列表可以是传入的参数,先前编辑的 collect 结果或其他列表表达式.注意UNWIND 需要指定一个新的名称. 列表操作 unwind [1, 2, 3, ...

  3. 图数据库(neo4j)学习心得

    图数据库(neo4j)学习心得 什么是图? 图数据库常用领域 1.社交网络 2.推荐和个性化 3.欺诈识别 4.金融领域 5.汽车制造领域 6.电信领域 图数据库的种类 Neo4j相关特性 数据模型 ...

  4. neo4j java 模糊搜索,Neo4j 使用cypher语言进行查询

    Neo4j是一个Java开发的图数据库,它将结构化数据存储在网络(从数学角度叫做图)上而不是表中.相对于关系数据库来说,图数据库善于处理大量复杂.互连接.低结构化的数据,这些数据变化迅速,需要频繁的查 ...

  5. 常用的图数据库(Neo4j、FlockDB、AllegroGrap、GraphDB、InfiniteGraph、TITAN、OrientDb)

    1. Neo4j Neo4j是一个流行的图形数据库,它是开源的.最近,Neo4j的社区版已经由遵循AGPL许可协议转向了遵循GPL许可协议.尽管如此,Neo4j的企业版依然使用AGPL许可.Neo4j ...

  6. model存数据_Jepsen 测试框架在图数据库 Nebula Graph 中的实践

    在本篇文章中主要介绍图数据库 Nebula Graph 在 Jepsen 这块的实践. Jepsen 简介 Jepsen 是一款用于系统测试的开源软件库,致力于提高分布式数据库.队列.共识系统等的安全 ...

  7. 【图数据库】Neo4j

    Neo4j 是我第一个接触的图数据库,之前对数据库没啥特别大的概念,于是在这里做了一下笔记. 完全是以我们程序员熟悉的 图数据结构存储数据的 , 和常规的关系型数据库哟组合本质的区别,但是又有很多概念 ...

  8. 如何应对洗钱犯罪的新变化?探索图数据库在反洗钱中的应用

    背景导读 洗钱,即对非法资金的合法化过程.它由违法犯罪集团组织,在躲避银行和执法部门监测情况下,利用违法交易手段对非法收益进行转移,是金融犯罪领域最难发现的活动之一.当前,洗钱团伙日趋集团化.规模化和 ...

  9. 图数据库Neo4j的介绍与使用

    Neo4j 是一个高性能的 NoSQL 图形数据库,它将结构化数据存储在网络(从数学角度叫做图)上而不是表中.Neo4j 也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性. 接下来我们 ...

最新文章

  1. html5 文本框限制,html中input禁止输入(禁止获得焦点)多种方法及input限制数字和长度...
  2. 小程序页面之间的通讯利器 - nsevent
  3. Redis 官方可视化工具,功能强大、干净又卫生!
  4. 【OpenCV3】阈值化操作——cv::threshold()与cv::adaptiveThreshold()详解
  5. 树莓派:挂载网络存储网络硬盘
  6. 计算机检测维修与数据恢复课件,2017年全国职业院校技能大赛中职组“计算机检测维修与数据恢复”赛项说明会ppt课件.ppt...
  7. 发电厂电气部分第三版pdf_火力发电厂电气主接线的特点
  8. 【C++】由指针常量和常量指针引发的问题
  9. day10-协程遇到IO操作自动切换
  10. 推荐系统在滴滴司机调度系统中的应用实践
  11. Java 性能优化系列之4[Java性能调优工具]
  12. myeclipse中文界面改颜色_“颜色识别器”安卓APP功能详细介绍
  13. Docker 命令总结
  14. LDA话题模型与推荐系统
  15. IOS fiddler抓包配置
  16. 计算机类专业本科学生成长四阶段必读四本书推荐
  17. Ubuntu安装Robo3T(Studio3T Free)
  18. Android 混淆
  19. 软件测试优秀员工发言稿,2018软件测试国赛获奖感言|2018年优秀员工获奖感言
  20. pycharm前进后退

热门文章

  1. 关于支付宝小程序使用wxbarcode需要生成条形码的源码修改
  2. 最全curl命令总结【详解】
  3. android 测试机 怎么root,Android 应用安全 - 检测设备是否Root
  4. java.io.IOException: Response data error, expect Throwable, but get null
  5. 剑指offer 青蛙跳楼梯
  6. cocos2dx android 接入爱贝支付平台sdk记录
  7. Android -- 多媒体播放之MediaPlayer基础简介
  8. 两个数字交换的三种方法
  9. 10 款更先进的开源命令行工具
  10. Python3-Spyder-urllib.request抓取搜haohuo平台信息-保存到csv