示例图集
以下示例根据该图集运行:

append()
向列表末尾添加元素并返回新列表。
| 语法 | append(<list>, <elem>) |
||
| 参数 | 名称 | 类型 | 描述 |
<list> |
LIST |
目标列表 | |
<elem> |
任意 | 待添加的元素 | |
| 返回类型 | LIST |
||
LET myList = ["a", 1, 2]
RETURN append(myList, "b")
结果:
| append(myList, "b") |
|---|
| ["a",1,2,"b"] |
difference()
返回两个列表之间的差异,生成一个新列表,其中包括出现在第一个列表但不在第二个列表的元素。重复项也包括在内。
| 语法 | difference(<list_1>, <list_2>) |
||
| 参数 | 名称 | 类型 | 描述 |
<list_1> |
LIST |
第一个列表 | |
<list_2> |
LIST |
第二个列表 | |
| 返回类型 | LIST |
||
LET l1 = [1,2,2,3], l2 = [3,4,5]
RETURN difference(l1, l2)
结果:
| difference(l1, l2) |
|---|
| [1,2,2] |
elements()
以列表形式返回组成路径的点和边。
| 语法 | elements(<path>) |
||
| 参数 | 名称 | 类型 | 描述 |
<path> |
PATH |
目标路径 | |
| 返回类型 | LIST |
||
MATCH p = ()->()
LET items = elements(p)
FOR item IN items WITH ORDINALITY index
FILTER index %2 = 1
RETURN item
结果: item
_id |
_uuid | schema | values |
|---|---|---|---|
| P2 | Sys-gen | Course | {title: "Optimizing Queries", author: "Alex", score: 9} |
| P3 | Sys-gen | Course | {title: "Path Patterns", author: "Zack", score: 7} |
| P1 | Sys-gen | Course | {title: "Efficient Graph Search", author: "Alex", score: 6} |
| P2 | Sys-gen | Course | {title: "Optimizing Queries", author: "Alex", score: 9} |
head()
返回列表中的第一个元素。
| 语法 | head(<list>) |
||
| 参数 | 名称 | 类型 | 描述 |
<list> |
LIST |
目标列表 | |
| 返回类型 | STRING |
||
LET myList = ["a", 1, 2]
RETURN head(myList)
结果:
| head(myList) |
|---|
| a |
intersection()
返回两个列表的共有元素,生成新列表。重复项也包含在内。
| 语法 | intersection(<list_1>, <list_2>) |
||
| 参数 | 名称 | 类型 | 描述 |
<list_1> |
LIST |
第一个列表 | |
<list_2> |
LIST |
第二个列表 | |
| 返回类型 | LIST |
||
LET l1 = [1,2,3,3], l2 = [3,3,4,5]
RETURN intersection(l1, l2)
结果:
| intersection(l1, l2) |
|---|
| [3,3] |
listContains()
判断列表中是否包含指定元素,返回结果1为真,0为假。
| 语法 | listContains(<list>, <elem>) |
||
| 参数 | 名称 | 类型 | 描述 |
<list> |
LIST |
待判断的列表 | |
<elem> |
任意 | 在<list>中待查询的元素 |
|
| 返回值 | 1 or 0 |
||
LET myList = ["a", 1, 2]
RETURN listContains(myList, "b")
结果:
| listContains(myList, "b") |
|---|
| 0 |
listUnion()
返回两个列表的并集,生成新列表。不包含重复项。
| 语法 | listUnion(<list_1>, <list_2>) |
||
| 参数 | 名称 | 类型 | 描述 |
<list_1> |
LIST |
第一个列表 | |
<list_2> |
LIST |
第二个列表 | |
| 返回类型 | LIST |
||
LET l1 = [1,2,2,3], l2 = [3,4,5]
RETURN listUnion(l1, l2)
结果:
| listUnion(l1, l2) |
|---|
| [1,2,3,4,5] |
reduce()
对列表中的每个元素执行迭代计算。指定初始值后,定义的计算过程会将列表中的第一个元素当作输入值开始计算。
| 语法 | reduce(<resAlias> = <initVal>, <elemAlias> in <list> | <calcExp>) |
||
| 参数 | 名称 | 类型 | 描述 |
<resAlias> |
/ | 代表初始、中间和最终计算结果的别名 | |
<initVal> |
/ | 分配给<resAlias>的初始值 |
|
<elemAlias> |
/ | 代表列表中各元素的别名 | |
<list> |
LIST |
目标列表 | |
<calcExp> |
/ | 计算表达式 | |
| 返回类型 | STRING |
||
LET myList = [1,3,5]
RETURN reduce(_sum = 0, item in myList | _sum + item) AS listSum
结果:
| listSum |
|---|
| 9 |
MATCH p = ({_id: "P1"})-[edges]->{2}()
RETURN reduce(total = 0, edge in edges | total + edge.weight) as totalWeights
结果:
| totalWeights |
|---|
| 3 |
size()
返回列表中的元素总数。
| 语法 | size(<list>) |
||
| 参数 | 名称 | 类型 | 描述 |
<list> |
LIST |
目标列表 | |
| 返回类型 | UINT |
||
LET myList = [1, 2, null, 3]
RETURN size(myList)
结果:
| size(myList) |
|---|
| 4 |
trim()
从给定列表的结尾移除指定个数的元素。
| 语法 | trim(<list>, <num>) |
||
| 参数 | 名称 | 类型 | 描述 |
<list> |
LIST |
待裁剪的列表 | |
<num> |
UINT |
指定从列表移除的元素个数,为整数 | |
| 返回类型 | LIST |
||
LET myList = [1, 2, null, 3]
RETURN trim(myList, 2)
结果:
| TRIM(myList, 2) |
|---|
| [1,2] |