apoc.coll.elements

详细信息

语法

apoc.coll.elements(coll [, limit, offset ]) :: (_1-_10, _1s-_10s, _1i-_10i, _1f-_10f, _1b-_10b, _1l-_10l, _1m-_10m, _1n-_10n, _1r-_10r, _1p-_10p, elements)

描述

LIST<ANY> 解构为指示其特定类型的标识符。

输入参数

名称

类型

描述

coll

LIST<ANY>

要解构的值列表。

limit

INTEGER(整数)

从给定列表中解构的最大元素数量。默认值为:-1

offset

INTEGER(整数)

开始解构的偏移量。默认值为:0

返回参数

名称

类型

描述

_1-_10

ANY

第 1 项到第 10 项的值。

_1s-_10s

STRING

第 1 到第 10 项的值(如果该项是字符串类型)。

_1i-_10i

INTEGER(整数)

第 1 到第 10 项的值(如果该项是整数类型)。

_1f-_10f

FLOAT

第 1 到第 10 项的值(如果该项是浮点类型)。

_1b-_10b

布尔值 (BOOLEAN)

第 1 到第 10 项的值(如果该项是布尔类型)。

_1l-_10l

LIST<ANY>

第 1 到第 10 项的值(如果该项是列表类型)。

_1m-_10m

MAP

第 1 到第 10 项的值(如果该项是映射类型)。

_1n-_10n

NODE

第 1 到第 10 项的值(如果该项是节点类型)。

_1r-_10r

RELATIONSHIP

第 1 到第 10 项的值(如果该项是关系类型)。

_1p-_10p

PATH

第 1 到第 10 项的值(如果该项是路径类型)。

elements

INTEGER(整数)

解构后的元素数量。

使用示例

以下示例演示了如何将包含三个值的列表解构为标识符,并使用 APOC 和 Cypher 确定其类型。

apoc.coll.elements
CALL apoc.coll.elements([9, true, "Neo4j"])
YIELD _1, _1s, _1i, _1b, _1l, _1m, _1n, _1r, _1p,
      _2, _2s, _2i, _2b, _2l, _2m, _2n, _2r, _2p,
      _3, _3s, _3i, _3b, _3l, _3m, _3n, _3r, _3p
RETURN _1, _1s, _1i, _1b, _1l, _1m, _1n, _1r, _1p,
       _2, _2s, _2i, _2b, _2l, _2m, _2n, _2r, _2p,
       _3, _3s, _3i, _3b, _3l, _3m, _3n, _3r, _3p;
使用 Cypher 的 CASE 和类型谓词表达式
UNWIND [9, true, "Neo4j"] AS value
RETURN
value,
CASE WHEN value IS :: STRING THEN value ELSE null END AS _s,
CASE WHEN value IS :: INTEGER THEN value ELSE null END AS _i,
CASE WHEN value IS :: BOOLEAN THEN value ELSE null END AS _b,
CASE WHEN value IS :: ANY LIST THEN value ELSE null END AS _l,
CASE WHEN value IS :: MAP THEN value ELSE null END AS _m,
CASE WHEN value IS :: NODE THEN value ELSE null END AS _n,
CASE WHEN value IS :: RELATIONSHIP THEN value ELSE null END AS _r,
CASE WHEN value IS :: PATH THEN value ELSE null END AS _p

下方的输出本应出现在 apoc.coll.elements 的单个表格中,但为了提高可读性,已将其格式化为多个表格。

结果
_1 _1s _1i _1b _1l _1m _1n _1r _1p

9

NULL

9

NULL

NULL

NULL

NULL

NULL

NULL

结果
_2 _2s _2i _2b _2l _2m _2n _2r _2p

TRUE

NULL

NULL

TRUE

NULL

NULL

NULL

NULL

NULL

结果
_3 _3s _3i _3b _3l _3m _3n _3r _3p

"Neo4j"

"Neo4j"

NULL

NULL

NULL

NULL

NULL

NULL

NULL