ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:51.98KB ,
资源ID:10769430      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10769430.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Neo4j图数据库学习第四章Cypher 函数断言标量列表.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Neo4j图数据库学习第四章Cypher 函数断言标量列表.docx

1、Neo4j图数据库学习第四章Cypher 函数断言标量列表Cypher函数 (方法)在cypher中使用,如count()MATCH (n)return count(n)分类: 断言函数 标量函数 列表函数 数学函数 字符串函数实验实例:CREATE (Alice name: Alice ,age:38,eyes:brown),(Charlie name: Charlie ,age:53,eyes:green),(Bob name: Bob ,age:25,eyes:blue),(Daniel name: Daniel ,age:54,eyes:brown),(Eskil array:one,

2、two,three,name: Eskil ,age:41,eyes:blue)CREATE (Alice)-:KNOWS-(Charlie),(Alice)-:KNOWS-(Bob),(Charlie)-:KNOWS-(Daniel),(Bob)-:KNOWS-(Daniel),(Bob)-:MARRIED-(Eskil)return Alice,Charlie,Bob,Daniel,Eskil1. 断言(Predicate)函数断言函数是对给定的输入返回true或者false的布尔函数。它们主要用于查询的WHERE部分过滤子图。all()判断是否一个断言适用于列表中的所有元素。语法: al

3、l(variable IN list WHERE predicate)参数: list:返回列表的表达式 variable:用于断言中的变量 predicate:用于测试列表中所有元素的断言MATCH p =(a)-*1.3-(b)WHERE ALL (x IN nodes(p) WHERE x.age 30)RETURN p返回路径中的所有节点都有一个至少大于30的age属性。any()判断是否一个断言至少适用于列表中的一个元素。语法: any(variable IN list WHERE predicate)参数: list:返回列表的表达式 variable:用于断言中的变量 predi

4、cate:用于测试列表中所有元素的断言MATCH (a)RETURN ANY (x IN a.array WHERE x = one)RETURN a返回路径中的所有节点的array数组属性中至少有一个值为one。none()如果断言不适用于列表中的任何元素,则返回true。语法: none(variable IN list WHERE predicate)参数: list:返回列表的表达式 variable:用于断言中的变量 predicate:用于测试列表中所有元素的断言MATCH p =(n)-*1.3-(b)WHERE n.name = Alice AND NONE (x IN nod

5、es(p) WHERE x.age = 25)RETURN p返回的路径中没有节点的age属性值为25。single()如果断言刚好只适用于列表中的某一个元素,则返回true。语法: single(variable IN list WHERE predicate)参数: list:返回列表的表达式 variable:用于断言中的变量 predicate:用于测试列表中所有元素的断言MATCH p =(n)-(b)WHERE n.name = Alice AND SINGLE (var IN nodes(p) WHERE var.eyes = blue)RETURN p每条返回的路径中刚好只有一

6、个节点的eyes属性值为blue。exists()如果数据库中存在该模式或者节点中存在该属性时,则返回true。语法: exists( pattern-or-property )参数: pattern-or-property:模式或者属性(以variable.prop的形式)MATCH (n)WHERE exists(n.name)RETURN n.name AS name, exists(n)-:MARRIED-() AS is_married本查询返回了所有节点的name属性和一个指示是否已婚的true/false值。1. 标量(Scalar)函数标量函数返回一个单值。 size()使用s

7、ize()返回表中元素的个数。语法: size( list )参数: list:返回列表的表达式RETURN size(Alice, Bob) AS col本查询返回了列表中元素的个数。模式表达式的size这里的size()的参数不是一个列表,而是一个模式表达式匹配到的查询结果集。计算的是结果集元素的个数,而不是表达式本身的长度。语法: size( pattern expression )参数: pattern expression:返回列表的模式表达式MATCH (a)WHERE a.name = AliceRETURN size(a)-()-() AS fof本查询返回了模式表达式匹配到的

8、子图的个数。length()使用length()函数返回路径的长度。语法: length( path )参数: path:返回路径的表达式MATCH p =(a)-(b)-(c)WHERE a.name = AliceRETURN length(p)本查询返回路径p的长度。字符串的长度语法: length( string )参数: string:返回字符串的表达式RETURN length(qwer)MATCH (a)WHERE length(a.name) 6RETURN length(a.name)查询返回了name为Charlie的长度。type()返回字符串代表的关系类型。语法: ty

9、pe( relationship )参数: relationship:一个关系MATCH (n)-r-()WHERE n.name = AliceRETURN type(r)查询返回了关系r的关系类型。id()返回关系或者节点的id。语法: id( property-container )参数: property-container:一个节点或者关系MATCH (a)RETURN id(a)返回了5个节点的id。coalesce()返回表达式列表中的第一个非空的值。如果所有的实参都为空 ,则返回null。语法: coalesce( expression , expression* )参数: e

10、xpression:表达式,可能返回null。MATCH (a)WHERE a.name = AliceRETURN coalesce(a.hairColor, a.eyes)head()head()返回列表中的第一个元素。语法: head( expression )参数: expression:返回列表的表达式MATCH (a)WHERE a.name = EskilRETURN a.array, head(a.array)MATCH p=(n)-r-()WHERE n.name = Alicereturn head(nodes(p)返回了路径中的第一个节点。last()last()返回列表

11、中的最后一个元素。语法: last( expression )参数: expression:返回列表的表达式MATCH (a)WHERE a.name = EskilRETURN a.array, last(a.array)返回了路径中的最后一个节点。timestamp()timestamp()返回当前时间与1970年1月1日午夜之间的差值,单位以毫秒计算。它在整个查询中始终返回同一个值,即使是在一个运行时间很长的查询中。语法: timestamp()参数: 无RETURN timestamp()以毫秒返回当前时间。startNode()startNode()返回一个关系的开始节点。语法: s

12、tartNode( relationship )参数: relationship:返回关系的表达式MATCH ()-r-()WHERE id(r)=0RETURN startNode(r)endNode()endNode()返回一个关系的结束节点。语法: endNode( relationship )参数: relationship:返回关系的表达式MATCH ()-r-()WHERE id(r)=0RETURN startNode(r),endNode(r)properties()properties()将实参转为属性值的map。如果实参是一个节点或者关系,返回的就是节点或关系的属性的map

13、。如果实参已经是一个map了,那么原样返回结果。语法: properties( expression )参数: expression:返回节点,关系或者map的表达式match (n) where id(n) =0RETURN properties(n)toInt()toInt()将实参转换为一个整数。字符串会被解析为一个整数。如果解析失败,将返回null。浮点数将被强制转换为整数。语法: toInt( expression )参数: expression:返回任意值的表达式RETURN toInt(42), toInt(not a number)toFloattoFloat()将实参转换为浮

14、点数。字符串会被解析为一个浮点数。如果解析失败,将返回null。整数将被强制转换为浮点数。语法: toFloat( expression )参数: expression:返回任意值的表达式RETURN toFloat(11.5), toFloat(not a number)3.列表(List)函数列表函数返回列表中的元素,如路径中的节点等等。nodes()返回一条路径中的所有节点。语法: nodes( path )参数: path:一条路径查询返回了路径p中的所有节点。MATCH p =(a)-(b)-(c)WHERE a.name = Alice AND c.name = EskilRETU

15、RN nodes(p)relationships()返回一条路径中的所有关系。语法: relationships( path )参数: path:一条路径MATCH p =(a)-(b)-(c)WHERE a.name = Alice AND c.name = EskilRETURN relationships(p)查询返回了路径p中的所有节点关系。labels()以字符串列表的形式返回一个节点的所有标签。语法: labels( node )参数: node:返回单个节点的任意表达式MATCH (a)WHERE a.name = AliceRETURN labels(a)查询返回了节点n的所有

16、标签。keys()以字符串列表的形式返回一个节点,关系或者map的所有属性的名称。语法: keys( property-container )参数: property-container:一个节点,关系或者字面值的mapMATCH (a)WHERE a.name = AliceRETURN keys(a)查询返回了节点a的属性名。extract()可以使用extract()从节点或关系列表中返回单个属性或者某个函数的值。它将遍历整个列表,针对列表中的每个元素运行一个表达式,然后以列表的形式返回这些结果。它的工作方式类似与Lisp和Scala等函数式语言中的map方法。语法: extract(

17、variable IN list | expression )参数: list:返回列表的表达式 variable:引用list中元素的变量,它在expression中会用到 expression:针对列表中每个元素所运行的表达式,并产生一个结果列表。MATCH p =(a)-(b)-(c)WHERE a.name = Alice AND b.name = Bob AND c.name = DanielRETURN extract(n IN nodes(p)| n.age) AS extracted返回了路径中所有节点的age属性。filter()filter()返回列表中满足断言要求的所有元

18、素。语法: filter(variable IN list WHERE predicate)参数: list:返回列表的表达式 variable:断言中引用列表元素所用到的变量 predicate:针对列表中每个元素进行测试的断言MATCH (a)WHERE a.name = EskilRETURN a.array, filter(x IN a.array WHERE size(x)= 3)返回array属性,及其元素的字符数为3的元素列表。tail()tail()返回列表中除了首元素之外的所有元素。语法: tail( expression )参数: expression:返回某个类型列表的表

19、达式MATCH (a)WHERE a.name = EskilRETURN a.array, tail(a.array)返回了array属性及属性中除了第一个之外的所有元素。range()range()返回一个范围内的数字。值之间的默认步长为1。范围包含起始边界值。语法: range( start, end , step )参数: start:起点数值的表达式 end:结束数值的表达式 step:数值间隔的步长RETURN range(0, 10), range(2, 18, 3)第一个返回了0到10之间步长为1的所有值。第二个返回了从2到18之间步长为3的所有值。reduce()可以用red

20、uce()对列表中的每个元素执行一个表达式 ,将表达式结果存入一个累加器。它的工作机制类似Lisp和Scala等函数式语言中的fold或者reduce方法。语法: reduce( accumulator = initial, variable IN list | expression )参数: accmulator:用于累加每次迭代的部分结果 initial:累加器的初始值 list:列表 variable:引用列表中的每个元素的变量 expression:针对列表中每个元素执行的表达式MATCH p =(a)-(b)-(c)WHERE a.name = Alice AND b.name =

21、Bob AND c.name = DanielRETURN reduce(totalAge = 0, n IN nodes(p)| totalAge + n.age) AS reduction本查询将路径中每个节点的age数值加起来,然后返回一个单值。4. 数学函数这些函数仅适用于数值表达式。如果用于其他类型的值,将返回错误。数值函数abs()abs()函数返回数值的绝对值。语法: abs( expression )参数: expression:数值表达式MATCH (a),(e)WHERE a.name = Alice AND e.name = EskilRETURN a.age, e.ag

22、e, abs(a.age - e.age)返回两个年龄差值的绝对值。ceil()ceil()返回大于或等于实参的最小整数。语法: ceil( expression )参数: expression:数值表达式RETURN ceil(0.1)返回大于0.1的最小整数,即为1。floor()floor()返回小于等于表达式的最大的整数。语法: floor( expression )参数: expression:数值表达式RETURN floor(0.9)小于等于0.9的最大的整数为0。round()round()返回距离表达式值最近的整数。语法: round( expression )参数: exp

23、ression:数值表达式RETURN round(3.141592)距离3.141592最近的整数为3。sign()sign()返回一个数值的正负。如果值为零,则返回0。如果值为负数,则返回-1。如果值为正数,返回1。语法: sign( expression )参数: expression:数值表达RETURN sign(-17), sign(0.1)返回了-17和0.1的正负符号。rand()rand()返回0, 1)之间的一个随机数。返回的数值在整个区间遵循均匀分布。语法: rand()参数: 无RETURN rand()返回了一个随机数。对数函数log()log()返回表达式的自然对数

24、。语法: log( expression )参数: expression:数值表达式RETURN log(27)返回了27的自然对数的值。log10()log10()返回表达式的常用对数(以10为底)。语法: log10( expression )参数: expression:数值表达式RETURN log10(27)返回了27的常用对数。exp()exp()返回en,这里e是自然对数的底,n是表达式的实参值。语法: e( expression )参数: expression:数值表达式RETURN exp(2)返回了e的二次方。e()e()返回自然对数的底,即e。语法: e()参数: 无RE

25、TURN e()返回了自然对数的底e的值。sqrt()sqrt()返回数值的平方根。语法: sqrt( expression )参数: expression:数值表达式RETURN sqrt(256)返回了256的平方根,即16.三角函数除非特别指明,所有的三角函数都是针对弧度值进行计算的。sin()sin()返回表达式的正弦函数值。语法: sin( expression )参数: expression:一个表示角的弧度的数值表达式RETURN sin(0.5)返回弧度为0.5的正弦值。cos()cos()返回表达式的余弦函数值。语法: cos( expression )参数: express

26、ion:一个表示角弧度的数值表达式RETURN cos(0.5)返回了弧度为0.5的余弦。tan()tan()返回表达式的正切值。语法: tan( expression )参数: expression:一个表示角弧度的数值表达式RETURN tan(0.5)cot()cot()返回表达式的余切值。语法: cot( expression )参数: expression:一个表示角弧度的数值表达式RETURN cot(0.5)返回了弧度为0.5的余切。asin()asin()返回表达式的反正弦值。语法: asin( expression )参数: expression:一个表示角弧度的数值表达式

27、RETURN asin(0.5)返回了弧度为0.5的反正弦。acos()acos()返回表达式的反余弦值。语法: acos( expression )参数: expression:一个表示角弧度的数值表达式RETURN acos(0.5)返回了弧度为0.5的反余弦。atan()atan()返回表达式的反正切值。语法: atan( expression )参数: expression:一个表示角弧度的数值表达式RETURN atan(0.5)返回弧度0.5的反正切。atan2()atan2()返回方位角,也可以理解为计算复数 x+yi 的幅角。语法: atan2( expression1, ex

28、pression2 )参数: expression1:表示复数x部分的数值表达式 expression2:表示复数y部分的数值表达式RETURN atan2(0.5, 0.6)返回了0.5和0.6的方位角。pi()pi()返回常数pi的数值。语法: pi()参数: 无RETURN pi()返回常数pi的值。degrees()degrees()将弧度转为度。语法: degrees( expression )参数: expression:一个表示角弧度的数值表达式RETURN degrees(3.14159)返回接近于pi的度数。radians()radians()将度转为弧度。语法: radians( expression )参数: expression:一个表示角度数的数值表达式RETURN radians(180)返回了180度的弧度值(pi)。haversin()haversin()返回表达式的半正矢。语法: haversin( expression )参数: expression:一个表示角弧度的数值表达式RETURN haversin(0.5)返回了弧度为0.5的半正矢。使用haversin函数计算球面距离haversin()函数可用于计算球面上两点(以经纬度的方式给出)之间的距离。在本例计算了德国柏林(lat 52.5,lo

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1