apoc.coll.sortMulti
Function APOC Core
apoc.coll.sortMulti(coll, ['^name','age'],[limit],[skip]) - sort list of maps by several sort fields (ascending with ^ prefix) and optionally applies limit and skip
Signature
apoc.coll.sortMulti(coll :: LIST? OF MAP?, orderFields = [] :: LIST? OF STRING?, limit = -1 :: INTEGER?, skip = 0 :: INTEGER?) :: (LIST? OF ANY?)Input parameters
| Name | Type | Default | 
|---|---|---|
| coll | LIST? OF MAP? | null | 
| orderFields | LIST? OF STRING? | [] | 
| limit | INTEGER? | -1 | 
| skip | INTEGER? | 0 | 
Usage Examples
The following sorts a list of maps by the name property in ascending order:
RETURN apoc.coll.sortMulti([
  {name:'graphs'},
  {name:'are',age:32},
  {name:'everywhere',age:42}
], ['^name']) as output;| Output | 
|---|
| [{name: "are", age: 32}, {name: "everywhere", age: 42}, {name: "graphs"}] | 
The following sorts a list of maps by the name property in ascending order and then the age property in descending order:
RETURN apoc.coll.sortMulti([
  {name:'graphs'},
  {name:'are',age:32},
  {name:'are',age:21},
  {name:'everywhere'}
], ['^name', 'age']) as output;| Output | 
|---|
| [{name: "are", age: 32}, {name: "are", age: 21}, {name: "everywhere"}, {name: "graphs"}] | 
The following sorts a list of maps by the name property in ascending order and returns only one value:
RETURN apoc.coll.sortMulti([
  {name:'graphs'},
  {name:'are'},
  {name:'everywhere'}
], ['^name'], 1) as output;| Output | 
|---|
| [{name: "are"}] | 
The following sorts a list of maps by the name property in ascending order and skips the first value:
RETURN apoc.coll.sortMulti([
  {name:'graphs'},
  {name:'are'},
  {name:'everywhere'}
], ['^name'], -1, 1) as output;| Output | 
|---|
| [{name: "everywhere"}, {name: "graphs"}] | 
The following sorts a list of maps by the name property in ascending order, skips the first value, and returns only one value:
RETURN apoc.coll.sortMulti([
  {name:'graphs'},
  {name:'are'},
  {name:'everywhere'}
], ['^name'], 1, 1) as output;| Output | 
|---|
| [{name: "everywhere"}] |