neo4j学习总结--第六课 Cypher函数 (方法)

目录

一、断言(Predicate)函数

1.1、all() 判断是否一个断言适用于列表中的所有元素

1.2、any()  判断是否一个断言至少适用于列表中的一个元素

1.3、none()

1.4、single()

1.5、exists() 可能经常使用

二、标量(Scalar)函数

2.1、size()

2.2、length()

2.3、type() 返回字符串代表的关系类型。

2.4、id()

2.5、coalesce() 返回表达式列表中的第一个非空的值

2.6、head()

2.7、last()

2.8、timestamp()

2.9、startNode()

2.10、endNode()

2.11、properties()

2.12、toInt()

2.13、toFloat()

三、列表(List)函数

3.1、nodes() 作用path

3.2、relationships() 作用path

3.2、labels() 参数为node

3.3、keys() 可以为节点 和关系

3.4、extract()

3.5、filter()

3.6、tail()

3.7、range()

3.8、reduce()

四、字符串函数

4.1、replace()

4.2、substring()

4.3、left()

4.4、right()

4.4、ltrim()

4.5、rtrim()

4.5、trim()

4.6、lower()

4.7、upper()

4.8、split()

4.9、reverse()

4.10、toString()

五、数学函数

5.1、数值函数

5.2、对数函数

5.3三角函数


在cypher中使用,如count()

MATCH (n)

return count(n)

分类:

  1. 断言函数
  2. 标量函数
  3. 列表函数
  4. 数学函数
  5. 字符串函数

一、断言(Predicate)函数

断言函数是对给定的输入返回true或者false的布尔函数。它们主要用于查询的WHERE部分过滤子图。

1.1、all() 判断是否一个断言适用于列表中的所有元素

语法: all(variable IN list WHERE predicate)

参数:

  1. list:返回列表的表达式
  2. variable:用于断言中的变量
  3. predicate:用于测试列表中所有元素的断言

示例:

MATCH p =(a)-[*1..3]->(b)

WHERE ALL (x IN nodes(p) WHERE x.age > 30)

RETURN p

返回路径中的所有节点都有一个至少大于30的age属性。

1.2、any()  判断是否一个断言至少适用于列表中的一个元素

语法: any(variable IN list WHERE predicate)

参数:

  1. list:返回列表的表达式
  2. variable:用于断言中的变量
  3. predicate:用于测试列表中所有元素的断言

MATCH (a)

where ANY (x IN a.array WHERE x = 'one')

RETURN a

返回路径中的所有节点的array数组属性中至少有一个值为'one'。

1.3、none()

如果断言不适用于列表中的任何元素,则返回true。

语法: none(variable IN list WHERE predicate)

参数:

  1. list:返回列表的表达式
  2. variable:用于断言中的变量
  3. predicate:用于测试列表中所有元素的断言

MATCH p =(n)-[*1..3]->(b)

WHERE n.name = 'Alice' AND NONE (x IN nodes(p) WHERE x.age = 25)

RETURN p

返回的路径中没有节点的age属性值为25。

1.4、single()

如果断言刚好只适用于列表中的某一个元素,则返回true。

语法: single(variable IN list WHERE predicate)

参数:

  1. list:返回列表的表达式
  2. variable:用于断言中的变量
  3. predicate:用于测试列表中所有元素的断言

MATCH p =(n)-->(b)

WHERE n.name = 'Alice' AND SINGLE (var IN nodes(p) WHERE var.eyes = 'blue')

RETURN p

每条返回的路径中刚好只有一个节点的eyes属性值为'blue'。

1.5、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值。

二、标量(Scalar)函数

标量函数返回一个单值。

2.1、size()

使用size()返回表中元素的个数。

语法: size( list )

参数:

  1. list:返回列表的表达式

RETURN size(['Alice', 'Bob']) AS col

本查询返回了列表中元素的个数。

模式表达式的size

这里的size()的参数不是一个列表,而是一个模式表达式匹配到的查询结果集。

计算的是结果集元素的个数,而不是表达式本身的长度。

语法: size( pattern expression )

参数:

  1. pattern expression:返回列表的模式表达式

MATCH (a)

WHERE a.name = 'Alice'

RETURN size((a)-->()-->()) AS fof

本查询返回了模式表达式匹配到的子图的个数。

2.2、length()

1、使用length()函数返回路径的长度。

语法: length( path )

参数:

  1. path:返回路径的表达式

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

WHERE a.name = 'Alice'

RETURN length(p)

本查询返回路径p的长度。

2、字符串的长度

语法: length( string )

参数:

  1. string:返回字符串的表达式

RETURN length('qwer')

 

MATCH (a)

WHERE length(a.name)> 6

RETURN length(a.name)

查询返回了name为’Charlie’的长度。

2.3、type() 返回字符串代表的关系类型。

语法: type( relationship )

参数:

  1. relationship:一个关系

MATCH (n)-[r]->()

WHERE n.name = 'Alice'

RETURN type(r)

 

查询返回了关系r的关系类型。

2.4、id()

返回关系或者节点的id。

语法: id( property-container )

参数:

  1. property-container:一个节点或者关系

MATCH (a)

RETURN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值