apoc.coll.sortMulti
Syntax |
|
||
Description |
Sorts the given |
||
Arguments |
Name |
Type |
Description |
|
|
The list of maps to be sorted. |
|
|
|
The property keys to be used to sort the list of maps by. The default is: |
|
|
|
The amount of results to return. The default is: |
|
|
|
The amount to skip by. The default is: |
|
Returns |
|
Usage examples
The following examples sort a list of maps by the name
property in ascending order using both APOC and Cypher:
WITH [
{name:'graphs'},
{name:'are',age:32},
{name:'everywhere',age:42}
] AS list
RETURN apoc.coll.sortMulti(list, ['^name']) as output
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
output |
---|
[{name: "are", age: 32}, {name: "everywhere", age: 42}, {name: "graphs"}] |
The following examples sort a list of maps by the name
property in ascending order and then by the age
property in descending order using both APOC and Cypher:
WITH [
{name:'graphs'},
{name:'are',age:32},
{name:'are',age:21},
{name:'everywhere'}
] AS list
RETURN apoc.coll.sortMulti(list, ['^name', 'age']) as output
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
Output |
---|
[{name: "are", age: 32}, {name: "are", age: 21}, {name: "everywhere"}, {name: "graphs"}] |
The following examples sort a list of maps by the name
property in ascending order and return only one value using both APOC and Cypher:
WITH [
{name:'graphs'},
{name:'are'},
{name:'everywhere'}
] AS list
RETURN apoc.coll.sortMulti(list, ['^name'], 1) as output
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
Output |
---|
[{name: "are"}] |
The following examples sort a list of maps by the name
property in ascending order and skip the first value using both APOC and Cypher:
WITH [
{name:'graphs'},
{name:'are'},
{name:'everywhere'}
] AS list
RETURN apoc.coll.sortMulti(list, ['^name'], -1, 1) as output
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
Output |
---|
[{name: "everywhere"}, {name: "graphs"}] |
The following examples sort a list of maps by the name
property in ascending order, skip the first value, and return only one value using both APOC and Cypher:
WITH [
{name:'graphs'},
{name:'are'},
{name:'everywhere'}
] AS list
RETURN apoc.coll.sortMulti(list, ['^name'], 1, 1) as output
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
Output |
---|
[{name: "everywhere"}] |