neo4j图数据库函数介绍

一、字符串函数

1、转化为大写UPPER()

match (a:User) return upper(a.name)

2、转化为小写LOWER()

match (a:User) return lower(a.name)

3、截取字符串SUBSTRING()

match (a:User) return substring(a.name,0,1)  ---0:从第几位开始  1:截取几位

4、替换REPLACE()

match (a:User) return replace(a.name,'小','大')  --将’小’替换为’大’

二、聚合函数

1、count():返回行数

2、max():最大值

3、min():最小值

4、sum():求和

5、avg():平均值

match (a:User) return count(a.name),max(a.tel),min(a.tel),sum(a.tel),avg(a.tel)

三、关系函数

1、startnode()():关系的开始节点

2、endnode():关系的结束节点

3、type():关系的类型

4、id():关系的ID或者节点的ID

match (a:User)-[r]->(p:Ip) return startnode(r),endnode(r),type(r),id(r)

四、谓词函数

1、exists():特定的属性是否存在于节点、关系或者map中,返回turn、false

MATCH (n:User) RETURN exists(n.name)

五、检查集合函数

1、all()表示所有的元素都满足条件

MATCH p=(n:User) return all (x in nodes(p) where x.name='小明')

输出结果如下:

 

2、any()表示至少一个元素满足条件

MATCH p=(n:Person)-[r]->(b:User) return p, any (x in nodes(p) where x.name='小明')

输出结果如下:

 

3、none()函数表示没有一个元素满足条件

MATCH p=(n:Person)-[r]->(b:User) return p, none (x in nodes(p) where x.name='小明')

输出结果如下:

 

4、single()表示只有一个元素满足条件

MATCH p=(n:Person)-[r]->(b:User) return p, single (x in nodes(p) where x.name='小明')

 

六、标量函数

1、获得节点和关系的ID和属性

id():返回节点或关系的ID

properties():返回节点或关系的属性(Map)

match (a:User) return id(a),properties(a)

2、列表相关

coalesce():返回列表中第一个非NULL的元素

head():返回列表中的第一个元素

last():返回列表中的最有一个元素

size():返回列表中元素的数量

MATCH (a:User) RETURN labels(a),collect(a.name),head(collect(a.name)),last(collect(a.name)),size(collect(a.name))

 

MATCH (a:User) RETURN a,a.ip,coalesce(a.ip,a.name)

 

3、求长度的函数

    Length():返回路径的长度

MATCH p=(a:User)-->(b:Ip)<--(c:User) return p,length(p)

 

七、列表函数

1、抽取元素构成列表

extract函数的作用是从列表中抽取值

MATCH p=(a:User)-->(b:Ip)<--(c:User) return p,extract(x in nodes(p)|x.name)

 

 

2、过滤列表元素

filter函数用于对列表中的元素进行过滤

MATCH p=(a:User)-->(b:Ip)<--(c:User) return nodes(p),filter(x in nodes(p) where a.name='小红')

 

3、获得列表

keys(node):从节点的属性中抽取属性键

labels(node):节点标签的列表

nodes(path):从路径中获取所有节点的列表

relationships(path):从路径中获得所有的关系

    

4、序列的生成和倒置

return range(0,10)

 

return reverse(range(0,10))

 

5、迭代计算列表

reduce()函数应用在列表上,对列表中的每个元素e进行迭代计算,在元素e上运行表达式(expression),把当前的结果存储在累加器中,进行迭代计算,并返回最终计算的标量结果

MATCH p =(a:Role)-->(b)-->(c)

WHERE a.name = '猪八戒' AND b.name = '孙悟空' and c.name = '唐憎'

RETURN nodes(p),reduce(totalAge = 0, n IN nodes(p)| totalAge + n.age) AS reduction

 

posted @ 2021-09-08 18:13  Windsong的博客  阅读(1084)  评论(0)    收藏  举报