|| apoc.coll.sortMulti - APOC 核心文档 - Neo4j 文档

apoc.coll.sortMulti

详情

语法

apoc.coll.sortMulti(coll [, orderFields, limit, skip ])

描述

按给定字段对给定的 LIST<MAP<STRING, ANY>> 进行排序。要指示字段应按升序值排序,请在其前面加上插入符号 (^)。也可以对 LIST<MAP<STRING, ANY>> 添加限制并跳过值。

参数

名称

类型

描述

coll

LIST<MAP>

要排序的映射列表。

orderFields

LIST<STRING>

用于排序映射列表的属性键。默认为:[]

limit

INTEGER

要返回的结果数量。默认为:-1

skip

INTEGER

要跳过的数量。默认为:0

返回

LIST<ANY>

使用示例

以下示例使用 APOC 和 Cypher 按 name 属性升序对映射列表进行排序

apoc.coll.sortMulti
WITH [
  {name:'graphs'},
  {name:'are',age:32},
  {name:'everywhere',age:42}
] AS list
RETURN apoc.coll.sortMulti(list, ['^name']) as output
使用 Cypher 的 COLLECT 子查询
WITH [
  {name:'graphs'},
  {name:'are',age:32},
  {name:'everywhere',age:42}
] AS list
RETURN COLLECT {
    UNWIND list AS x
    RETURN x ORDER BY x.name
} AS output
结果
输出

[{name: "are", age: 32}, {name: "everywhere", age: 42}, {name: "graphs"}]

以下示例使用 APOC 和 Cypher 按 name 属性升序,然后按 age 属性降序对映射列表进行排序

apoc.coll.sortMulti
WITH [
  {name:'graphs'},
  {name:'are',age:32},
  {name:'are',age:21},
  {name:'everywhere'}
] AS list
RETURN apoc.coll.sortMulti(list, ['^name', 'age']) as output
使用 Cypher 的 COLLECT 子查询
WITH [
  {name:'graphs'},
  {name:'are',age:32},
  {name:'are',age:21},
  {name:'everywhere'}
] AS list
RETURN COLLECT {
  UNWIND list AS x
  RETURN x ORDER BY x.name ASC, x.age DESC
} AS output
结果
输出

[{name: "are", age: 32}, {name: "are", age: 21}, {name: "everywhere"}, {name: "graphs"}]

以下示例使用 APOC 和 Cypher 按 name 属性升序对映射列表进行排序并仅返回一个值

apoc.coll.sortMulti
WITH [
  {name:'graphs'},
  {name:'are'},
  {name:'everywhere'}
] AS list
RETURN apoc.coll.sortMulti(list, ['^name'], 1) as output
使用 Cypher 的 COLLECT 子查询
WITH [
  {name:'graphs'},
  {name:'are'},
  {name:'everywhere'}
] AS list
RETURN COLLECT {
    UNWIND list AS x
    RETURN x ORDER BY x.name LIMIT 1
} AS output
结果
输出

[{name: "are"}]

以下示例使用 APOC 和 Cypher 按 name 属性升序对映射列表进行排序并跳过第一个值

apoc.coll.sortMulti
WITH [
  {name:'graphs'},
  {name:'are'},
  {name:'everywhere'}
] AS list
RETURN apoc.coll.sortMulti(list, ['^name'], -1, 1) as output
使用 Cypher 的 COLLECT 子查询
WITH [
  {name:'graphs'},
  {name:'are'},
  {name:'everywhere'}
] AS list
RETURN COLLECT {
    UNWIND list AS x
    RETURN x ORDER BY x.name SKIP 1
} AS output
结果
输出

[{name: "everywhere"}, {name: "graphs"}]

以下示例使用 APOC 和 Cypher 按 name 属性升序对映射列表进行排序,跳过第一个值并仅返回一个值

apoc.coll.sortMulti
WITH [
  {name:'graphs'},
  {name:'are'},
  {name:'everywhere'}
] AS list
RETURN apoc.coll.sortMulti(list, ['^name'], 1, 1) as output
使用 Cypher 的 COLLECT 子查询
WITH [
  {name:'graphs'},
  {name:'are'},
  {name:'everywhere'}
] AS list
RETURN COLLECT {
    UNWIND list AS x
    RETURN x ORDER BY x.name SKIP 1 LIMIT 1
} AS output
结果
输出

[{name: "everywhere"}]

© . This site is unofficial and not affiliated with Neo4j, Inc.