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

浙公网安备 33010602011771号