编写 Cypher 代码续

news2024/12/23 4:02:30
  • 编写 Cypher 代码
    • 过滤查询
      • 查看图中的唯一性约束索引
        • SHOW CONSTRAINTS
      • 查看图中关系的属性类型
        • CALL db.schema.relTypeProperties()
      • 查看图中节点的属性类型
        • CALL db.schema.nodeTypeProperties()
      • 查看数据模型
        • CALL db.schema.visualization()
      • 用 WHERE 子句添加过滤条件
      • 查询执行历史
        • :history
      • EXPLAIN 关键字检查是否将使用索引(相当于Oracle中的执行计划)
        • EXPLAIN MATCH(m:Movie) WHERE m.title STARTS WITH 'Toy Story' RETURN m.title,m.released
          • 使用了索引
        • EXPLAIN MATCH(p:Person) WHERE toLower(p.name) ENDS WITH "demille" RETURN p.name
          • 没使用索引,因存在 toLower()

        • EXPLAIN 提供了查询步骤的估计值
      • PROFILE 关键字来显示从查询中的图形中检索到的总行数。
        • 主要看执行计划 plan 中的 db hits

        • PROFILE 提供了为查询检索的确切步骤和行数。
        • 只是查询图形而不更新任何内容,则可以使用 PROFILE
      • 使用多 MATCH 子句
        • 包含两 MATCH 子句
          • match(a:Person)-[:ACTED_IN]->(m:Movie) where m.year >2000 match(m)<-[:DIRECTED]-(d:Person) return a.name,m.title,d.name
        • MATCH 子句中使用多个模式
          • match (a:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(d:Person) where m.year > 2000 return a.name,m.title,d.name
      • OPTIONAL MATCH 类似于 MATCH 区别在于前者对模式的缺失部分使用空值。
        • MATCH (m:Movie) WHERE m.title = "Kiss Me Deadly" MATCH (m)-[:IN_GENRE]->(g:Genre)<-[:IN_GENRE]-(rec:Movie) OPTIONAL MATCH (m)<-[:ACTED_IN]-(a:Actor)-[:ACTED_IN]->(rec) RETURN rec.title, a.name
      • 模式理解:用 | 表示关系或语句的并列
        • MATCH (p:Person)-[ :ACTED_IN | DIRECTED ] ->(m) RETURN p
        • 模式理解是一种非常强大的方法,可以在不改变查询基数的情况下创建列表。它的行为类似于 OPTIONAL MATCH 与 collect() 。
        • 对于模式理解,我们用方括号指定列表以包含模式,后跟竖线字符,然后指定将根据模式将什么值放入列表中。 [<pattern> | value]
          • MATCH (m:Movie) WHERE m.year = 2015 RETURN m.title,[(dir:Person)-[:DIRECTED]->(m) | dir.name] AS directors,[(actor:Person)-[:ACTED_IN]->(m) | actor.name] AS actors
    • 返回结果
      • 映射投影以返回数据
        • 自定义对象返回的属性
          • MATCH(p:Person)WHERE p.name CONTAINS "Thomas" RETURN p {.name,.born} AS person ORDER BY p.name
          • 返回 person 对象及 name 和 born 属性
          • 可自定义属性,如添加属性,favorite : true
            • match (m:Movie)<-[:DIRECTED]-(d:Director) where d.name='Woody Allen' return m {.title,favorite:true} as movie
      • 更改返回的数据
        • 添加或合并属性值用 + 号(类似Oracle的 || )
          • match(m:Movie)<-[:ACTED_IN]-(p:Person) where m.title contains 'Toy Story' and p.died is null return 'Movie:'+ m.title as movie
      • 有条件返回数据
        • CASE WHEN...THEN...ELSE...END
      • 返回列表
        • match(p:Person) return p.name,[p.born,p.died] as lifeTime limit 10
      • 返回别名用 AS ,Oracle可用可不用,但Neo4j必须要用
    • 聚合函数
      • count()
        • 查询处理期间对节点、关系、路径、行进行计数。
        • Cypher 中的聚合不同于 SQL 中的聚合。
          • Cypher不需要分组,一旦 count() 使用类似聚合函数,所有非聚合结果列都会成为分组。RETURN分组是根据子句中的字段隐式完成的。
      • collect()
        • 创建列表,能够将值聚合到一个列表中。
          • match(p:Person)-[:ACTED_IN]->(m:Movie) return p.name as actor,count(*) as total,collect(m.title) as movies order by total desc limit 10
        • 该值可以是任何表达式,例如属性值、节点或函数或操作的结果。
        • 消除列表中的重复数据
          • match(p:Person)-[:ACTED_IN]->(m:Movie) return p.name as actor,count(*) as total,collect(m.title) as movies order by total desc limit 10
        • 采集结点
          • MATCH(p:Person)-[:ACTED_IN]->(m:Movie) WHERE p.name="Tom Cruise" RETURN collect(m) AS tomCruiseMovies
        • 访问列表元素
          • [index-value]您可以使用列表以索引 0 开头的符号访问列表的特定元素。
          • 访问列表的一个元素(字符串)
            • match(p:Person)-[:ACTED_IN]->(m:Movie) return m.title as movie,collect(p.name)[0] as castMember,size(collect(p.name)) as castSize
          • 访问列表中二个或十个以上字符
            • match(p:Person)-[:ACTED_IN]->(m:Movie) return m.title as movie,collect(p.name)[2..] as castMember,size(collect(p.name)) as castSize
          • 列表的理解
            • 如Oracle中的数组或集合
      • size()
        • 返回列表中元素的数据条数(列表计数)
      • min()
      • max()
      • avg()
      • stddev()
      • sum()
      • 时间函数
        • RETURN date(), datetime(), time()
        • date()
        • datetime()
        • time()
        • 创建时间测试节点
          • MERGE (x:Test {id: 1}) SET x.date = date(), x.datetime = datetime(), x.time = time() RETURN x
        • 添加时间节点属性
          • MATCH (x:Test {id: 1})SET x.date1 = date('2022-01-01'), x.date2 = date('2022-01-15') RETURN x
        • 查询两时间属性的时间差
          • MATCH (x:Test {id: 1}) RETURN duration.between(x.date1,x.date2)
          • MATCH (x:Test {id: 1})RETURN duration.inDays(x.datetime1,x.datetime2).days
        • 属性添加时间
          • MATCH (x:Test {id: 1}) RETURN x.date1 + duration({months: 6})
        • 使用APOC格式化日期和时间
          • match(x:Test{id:1}) return x.datetime as Datetime,apoc.temporal.format(x.datetime,'HH:mm:ss.SSSS') as forDateTime
          • match(x:Test{id:1}) return apoc.date.toISO8601(x.datetime.epochMillis,'ms') as iso8601
    • 函数
      • trim() 函数来确保语言名称中没有多余的空白字符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/350958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

28k入职腾讯测试岗那天,我哭了,这5个月付出的一切总算没有白费~

先说一下自己的个人情况&#xff0c;计算机专业&#xff0c;16年普通二本学校毕业&#xff0c;经历过一些失败的工作经历后&#xff0c;经推荐就进入了华为的测试岗&#xff0c;进去才知道是接了个外包项目&#xff0c;不太稳定的样子&#xff0c;可是刚毕业谁知道什么外包不外…

jsp营养配餐管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp营养配餐管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql&#xff0c;使…

企业带宽控制管理

在企业中保持稳定的网络性能可能具有挑战性&#xff0c;因为采用数字化的网络可扩展性和敏捷性应该与组织的发展同步。随着基础设施的扩展、新应用和新技术的引入&#xff0c;网络的带宽容量也在增加。 停机和带宽过度使用是任何组织都无法避免的两个问题&#xff0c;为了解决…

最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境

0 说明 本文基于最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境&#xff0c;并在windows本地进行调试和开发 1 准备 1.1 安装mysql 可以指定为windows本地mysql&#xff0c;也可以指定为其他环境mysql&#xff0c;若指定为其他环境mysql则可跳过此步。 我这…

IB学科学习方法分享,看看不同学科怎么学习?(二)

分享人&#xff1a;李 分享学科&#xff1a;物理HL &#xff08;个人选课&#xff1a;HL&#xff1a;数学 物理 VA。SL&#xff1a;英语 中文 经济。&#xff09; IB物理学习内容&#xff1a;&#xff08;IB物理有HL和SL之分&#xff0c;SL学习的是核心内容&#xff0c;HL则…

通过IP地址如何解决反欺诈?

IP地址在反欺诈方面可以提供有用的信息。以下是一些常见的方法&#xff1a;地理定位&#xff1a;根据IP地址&#xff0c;可以确定访问者的地理位置。这可以帮助您确定是否来自欺诈者通常不在的地理区域的IP地址。可疑行为&#xff1a;通过分析来自某个IP地址的活动&#xff0c;…

802.1x认证方式(EAP中继认证与EAP终结认证)

文章目录1、前言2、协议说明3、报文分析EAP中继模式:MD5-challengeEAP终结模式:MD5-challengeRadius CHAP认证原理参考资料&#xff1a;1、前言 802.1x协议是基于Client/Server的访问控制和认证协议。 它可以限制未经授权的用户/设备通过接入端口(access port)访问LAN/WLAN。在…

element-ui日期控件el-canlender学习笔记

需求&#xff1a;点击日历控件中的某一天&#xff0c;弹出弹出框添加这一天的活动。 任务分析&#xff1a; 点击日历控件的某一天&#xff0c;获取当前日期信息 代码实现&#xff1a; <el-calendar v-model"nowDate" ><templateslot"dateCell"sl…

无文件攻击

无文件攻击是一种高级持续性威胁&#xff08;APT&#xff09;的攻击方式&#xff0c;它不会在目标系统的磁盘上留下可执行文件&#xff0c;而是利用系统内置的工具或脚本执行恶意代码&#xff0c;从而绕过传统的安全防护措施。无文件攻击的最大特点就是恶意代码直接在内存中运行…

ce认证机构如何选择?

CE认证想必大家都已经有所了解&#xff0c;它是产品进入欧盟销售的通行证&#xff0c;那么我们在办理CE认证时该怎么进行选择?带大家了解一下CE认证机构&#xff0c;以及该怎么去进行选择? 以下信息由证果果编辑整理&#xff0c;更多认证机构信息请到证果果网站查看。找机构…

Python版本的常见模板(二) 数论(一)

文章目录前言质数相关质数判断求约数求取区间质数埃氏筛法线性筛法分解质因数欧拉欧拉函数求取单个数线性筛法求取欧拉定理求逆元快速幂/幂取模欧几里得算法求最小公约数拓展欧几里得算法求解同余方程前言 本文主要是提供Python版本的常见的一些与数论相关的模板&#xff0c;例…

SQL中常见的数据类型

SQL中常见的数据类型 目录概述一、整型分类特点二、小数分类特点三、字符型四、日期型分类特点概述 数值型 整数&#xff1a;整型 小数&#xff1a;定点数、浮点数字符型 较短的文本&#xff1a;char、varchar 较长的文本&#xff1a;text、blob(用于保存较长的二进制数据&…

GEE学习笔记 八十二:湖北旱情分析(2019年8月-9月)

2019年8月1日至9月15日&#xff0c;湖北平均雨量为近53年来同期最少&#xff0c;仅69.4毫米。尤其是中东部地区降水异常偏少&#xff0c;一个半月里大多数地方的累计降水量均不足70毫米&#xff0c;其中洪湖、英山降水仅4毫米。鄂西东部一直到鄂东地区的降水量均比常年同期偏少…

IP协议相关特性

日升时奋斗&#xff0c;日落时自省 目录 1、地址管理 1.1、子网掩码 2、路由选择 针对网络层的IP协议理解 TCP/IP协议栈TCPIP 此处详细解析IPv4协议&#xff08;v4版本&#xff09; 4位版本&#xff1a;此处的取值只有两个v4 &#xff0c;v6 4位首部长度 &#xff1a;描…

【WPF】WindowChrome 自定义窗口完美实现

WindowChrome 自定义窗口完美实现简介效果图自定义最小化、最大化、关闭按钮布局实现结语简介 Microsoft官网关于 WindowChome 的介绍 截取Microsoft文章的一段话&#xff1a;   若要在保留其标准功能时自定义窗口&#xff0c;可以使用该 WindowChrome 类。 该 WindowChrome…

多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序)

多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序) 目录 多元回归分析 | CNN-BiLSTM卷积双向长短期记忆神经网络多输入单输出预测(Matlab完整程序)预测结果评价指标基本介绍程序设计参考资料预测结果 评价指标 训练结束: 已完成最大轮…

新建一个完整的react项目和完善初始项目

一&#xff1a;新建一个完整的react项目 1.环境准备 目前我的环境是 node&#xff1a;16.17.1 npm&#xff1a; 8.15.0 查看环境&#xff1a;1)&#xff1a;打开命令提示符工具&#xff0c;利用node -v和npm -v 查看一下自己的环境&#xff0c;如果觉得重新卸载、安装node比较…

用记事本实现“HelloWorld”输出

一、在任意文件夹中创建一个新的文本文档文件并写入以下代码 public class Hello{public static void main (String[] args){System.out.print("Hello,World!");} } 二、修改文件名称及文件类型为 Hello.java 特别注意&#xff1a;文件命名必须与代码中类的名称相同…

为什么伟大的产品只专注做一件事

uber 不允许你预订出租车。亚马逊一开始只是卖书。谷歌只是一个搜索引擎。麦当劳没有餐具。不知为什么&#xff0c;我们仍然相信一个产品要想成功&#xff0c;它必须做很多事情。这通常发生在两种情况下&#xff1a;当新产品试图让市场相信它们是值得的&#xff0c;或者当公司提…

儿童蜡笔出口美国CPC认证CPSIA+ASTM963测试

蜡笔是将颜料掺在蜡里制成的笔&#xff0c;可有数十种颜色&#xff0c;画画用。蜡笔没有渗透性&#xff0c;是靠附着力固定在画面上&#xff0c;不适宜用过于光滑的纸、板&#xff0c;亦不能通过色彩的反复叠加求得复合色。它是儿童学习色彩画的理想工具&#xff0c;一些画家用…