目录
1.2、any() 判断是否一个断言至少适用于列表中的一个元素
2.5、coalesce() 返回表达式列表中的第一个非空的值
在cypher中使用,如count()
MATCH (n)
return count(n)
分类:
- 断言函数
- 标量函数
- 列表函数
- 数学函数
- 字符串函数
一、断言(Predicate)函数
断言函数是对给定的输入返回true或者false的布尔函数。它们主要用于查询的WHERE部分过滤子图。
1.1、all() 判断是否一个断言适用于列表中的所有元素
语法: all(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属性。

1.2、any() 判断是否一个断言至少适用于列表中的一个元素
语法: any(variable IN list WHERE predicate)
参数:
- list:返回列表的表达式
- variable:用于断言中的变量
- 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)
参数:
- list:返回列表的表达式
- variable:用于断言中的变量
- 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)
参数:
- list:返回列表的表达式
- variable:用于断言中的变量
- 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 )
参数:
- list:返回列表的表达式
| RETURN size(['Alice', 'Bob']) AS col |
本查询返回了列表中元素的个数。
模式表达式的size
这里的size()的参数不是一个列表,而是一个模式表达式匹配到的查询结果集。
计算的是结果集元素的个数,而不是表达式本身的长度。
语法: size( pattern expression )
参数:
- pattern expression:返回列表的模式表达式
| MATCH (a) WHERE a.name = 'Alice' RETURN size((a)-->()-->()) AS fof |
本查询返回了模式表达式匹配到的子图的个数。
2.2、length()
1、使用length()函数返回路径的长度。
语法: length( path )
参数:
- path:返回路径的表达式
| MATCH p =(a)-->(b)-->(c) WHERE a.name = 'Alice' RETURN length(p) |
本查询返回路径p的长度。
2、字符串的长度
语法: length( string )
参数:
- string:返回字符串的表达式
| RETURN length('qwer')
MATCH (a) WHERE length(a.name)> 6 RETURN length(a.name) |
查询返回了name为’Charlie’的长度。
2.3、type() 返回字符串代表的关系类型。
语法: type( relationship )
参数:
- relationship:一个关系
| MATCH (n)-[r]->() WHERE n.name = 'Alice' RETURN type(r)
|
查询返回了关系r的关系类型。
2.4、id()
返回关系或者节点的id。
语法: id( property-container )
参数:
- property-container:一个节点或者关系
| MATCH (a) RETURN |

最低0.47元/天 解锁文章
3501

被折叠的 条评论
为什么被折叠?



