Cypher 表达式

此页面包含 Cypher® 中允许表达式的示例。

常规

  • 变量:nxrelmyFancyVariable`A name with special characters in it[]!`

  • 属性:n.propx.proprel.thisPropertymyFancyVariable.`(special property name)`

  • 动态属性:n["prop"]rel[n.city + n.zip]map[coll[0]]

  • 参数:$param$0

  • 表达式列表:['a', 'b'][1, 2, 3]['a', 2, n.property, $param][]

  • 函数调用:length(p)nodes(p)

  • 聚合函数调用:avg(x.prop)count(*)

  • 路径模式:(a)-[r]->(b)(a)-[r]-(b)(a)--(b)(a)-->()<--(b)

  • 运算符应用:1 + 23 < 4

  • 子查询表达式:COUNT {}COLLECT {}EXISTS {}CALL {}

  • 正则表达式:a.name =~ 'Tim.*'

  • CASE 表达式。

  • null.

包含未经清理的用户输入的表达式可能会使您的应用程序容易受到 Cypher 注入的攻击。请考虑改用参数。在防止 Cypher 注入中了解更多信息。

Cypher 中的大多数表达式如果其任何内部表达式为 null,则计算结果为 null。值得注意的例外情况是运算符 IS NULLIS NOT NULL类型谓词表达式

数值

  • 数值 (INTEGERFLOAT) 字面量:13-400003.14

  • 科学计数法表示的数值 (INTEGERFLOAT) 字面量:6.022E23

  • 十六进制 INTEGER 字面量(以 0x 开头):0x13af0xFC3A9-0x66eff

  • 八进制 INTEGER 字面量(以 0o 开头):0o1372-0o5671

  • FLOAT 字面量:InfInfinityNaN

  • null.

任何数值字面量都可以在数字之间包含下划线 _。对于十六进制和八进制字面量,可以在 0x0o 与数字之间使用下划线。

字符串

  • STRING 字面量:'Hello'"World"

  • 区分大小写的 STRING 匹配表达式:a.surname STARTS WITH 'Sven'a.surname ENDS WITH 'son'a.surname CONTAINS 'son'

  • null.

字符串字面量转义序列

字符串字面量可以包含以下转义序列

转义序列 字符

\t

制表符

\b

退格键

\n

换行符

\r

回车符

\f

换页符

\'

单引号

\"

双引号

\\

反斜杠

\uxxxx

Unicode UTF-16 代码点(\u 后面必须跟 4 个十六进制数字)

布尔值

  • BOOLEAN 字面量:truefalse

  • 谓词表达式(即返回 BOOLEAN 值的表达式):a.prop = 'Hello'length(p) > 10a.name IS NOT NULL

  • 标签和关系类型表达式:(n:A|B)()-[r:R1|R2]->()

  • null.