collect()¶
collect()
returns a list containing the values returned by an expression. Using this function
aggregates data by amalgamating multiple records or values into a single list.
collect()
is an aggregation function. Like GROUP BY
in SQL.
Examples¶
This example works like GROUP BY
.
nebula> UNWIND [1, 2, 1] AS a RETURN a;
+---+
| a |
+---+
| 1 |
+---+
| 2 |
+---+
| 1 |
+---+
nebula> UNWIND [1, 2, 1] AS a RETURN collect(a);
+------------+
| COLLECT(a) |
+------------+
| [1, 2, 1] |
+------------+
nebula> UNWIND [1, 2, 1] AS a RETURN a, collect(a), size(collect(a))
+---+------------+------------------+
| a | COLLECT(a) | size(COLLECT(a)) |
+---+------------+------------------+
| 2 | [2] | 1 |
+---+------------+------------------+
| 1 | [1, 1] | 2 |
+---+------------+------------------+
You can sort reversely, limit output rows to 3, and collect the output into a list.
nebula> UNWIND ["c", "b", "a", "d" ] AS p \
WITH p AS q \
ORDER BY q DESC LIMIT 3 \
RETURN collect(q);
+-----------------+
| COLLECT(q) |
+-----------------+
| ["d", "c", "b"] |
+-----------------+
nebula> WITH [1, 1, 2, 2] AS coll \
UNWIND coll AS x \
WITH DISTINCT x \
RETURN collect(x) AS ss
+--------+
| ss |
+--------+
| [1, 2] |
+--------+
This example aggregates all players' names by their ages.
nebula> MATCH (n:player) RETURN collect(n.age);
+---------------------------------------------------------------+
| COLLECT(n.age) |
----------------------------------------------------------------+
| [32, 32, 34, 29, 41, 40, 33, 25, 40, 37, ...
...
nebula> MATCH (n:player) RETURN n.age AS age, collect(n.name);
...
+-----+--------------------------------------------------------------------------+
| 27 | ["Cory Joseph"] |
+-----+--------------------------------------------------------------------------+
| 28 | ["Damian Lillard", "Paul George", "Ricky Rubio"] |
+-----+--------------------------------------------------------------------------+
| 29 | ["Dejounte Murray", "James Harden", "Klay Thompson", "Jonathon Simmons"] |
+-----+--------------------------------------------------------------------------+
...
Last update: June 11, 2021