UltipaDocs
Try Playground
  • Introduction
  • Terminologies
    • Reserved Words
    • Data Types
    • Alias
    • Operators
    • Expression
    • Filter
    • Prefix
    • Node and Edge Templates
    • Homologous and Heterologous Data
    • Clause Execution Times
    • Graphset
    • Schema
    • Property
    • Insert
    • Overwrite
    • Upsert
    • Update
    • Delete
    • Find Nodes
    • Find Edges
      • AB
      • Autonet
      • Spread
      • Path Template
      • K-Hop
      • K-Hop Template
    • Find Subgraphs
    • GROUP BY
    • ORDER BY
    • SKIP
    • LIMIT
    • WHERE
    • RETURN
    • WITH
    • UNCOLLECT
    • UNION
    • UNION ALL
    • CALL
    • BATCH
      • Schema Checker
      • Equal
      • Not Equal
      • Less Than
      • Greater Than
      • Less Than or Equal
      • Greater Than or Equal
      • Between
      • Between or Equal
      • Beong to
      • Not Belong To
      • CONTAINS | String
      • CONTAINS | Full-Text
      • Regular Match
      • IS NULL
      • IS NOT NULL
      • And
      • Or
      • Not
      • Exclusive OR
      • DISTINCT
      • toString()
      • toInteger()
      • toFloat()
      • toDouble()
      • toDecimal()
      • toSet()
      • castToRaw()
      • now()
      • dateAdd()
      • dateDiff()
      • year()
      • month()
      • day()
      • dayOfWeek()
      • dateFormat()
      • point()
      • distance()
      • pointInPolygon()
      • lower()
      • upper()
      • reverse()
      • startsWith()
      • endsWith()
      • JSON_decode()
      • JSON_merge()
      • trim()
      • ltrim()
      • rtrim()
      • left()
      • right()
      • substring()
      • replace()
      • split()
      • intersection()
      • difference()
      • listUnion()
      • size()
      • head()
      • reduce()
      • listContains()
      • append()
      • pi()
      • pow()
      • sqrt()
      • abs()
      • floor()
      • ceil()
      • round()
      • sin()
      • cos()
      • tan()
      • cot()
      • asin()
      • acos()
      • atan()
      • length()
      • pnodes()
      • pedges()
      • count()
      • sum()
      • max()
      • min()
      • avg()
      • stddev()
      • collect()
      • dedup()
      • CASE
      • table()
      • coalesce()
      • ifnull()
    • Acceleration
    • Index
    • Full-text
    • LTE
    • Real-time Process
    • Backend Task
    • Analytics Node
    • Server Statistics
    • Server Backup
    • Privilege
    • Policy
    • User
  • Trigger
  1. Docs
  2. /
  3. UQL
  4. /
  5. List Functions

listUnion()

Function listUnion() merges and deduplicates the elements of two lists, and returns them as a new list, namely, returns the union of these two lists (repeated elements are NOT allowed in the union).

Arguments:

  • 1st list <list>
  • 2nd list <list>

Returns:

  • Union <list>

Common Usage

Exalmple: Direct calculate

UQL
uncollect [[1,2,2],[2,4,5]] as a
uncollect [[2,4,7],[4,5,7]] as b
return table(toString(a), toString(b), toString(listUnion(a, b)))
Result
| toString(a) | toString(b) | toString(listUnion(a, b)) |
|-------------|-------------|---------------------------|
| [1,2,2]     | [2,4,7]     | [1,2,4,7]                 |
| [2,4,5]     | [4,5,7]     | [2,4,5,7]                 |

Exalmple: Multiply and calculate

UQL
uncollect [[1,2,2],[2,4,5]] as a
uncollect [[2,4,7],[4,5,7]] as b
with listUnion(a, b) as c
return table(toString(a), toString(b), toString(c))
Result
| toString(a) | toString(b) | toString(c) |
|-------------|-------------|-------------|
| [1,2,2]     | [2,4,7]     | [1,2,4,7]   |
| [1,2,2]     | [4,5,7]     | [1,2,4,5,7] |
| [2,4,5]     | [2,4,7]     | [2,4,5,7]   |
| [2,4,5]     | [4,5,7]     | [2,4,5,7]   |

Sample graph: (to be used for the following examples)

Run below UQLs one by one in an empty graphset to create graph data: ```customlang___fold__lang_uql create().node_schema("student").node_schema("course") create().node_property(@*, "name").node_property(@student, "age", int32).node_property(@course, "credit", int32) insert().into(@student).nodes([{_id:"S001", _uuid:1, name:"Jason", age:25}, {_id:"S002", _uuid:2, name:"Lina", age:23}, {_id:"S003", _uuid:3, name:"Eric", age:24}, {_id:"S004", _uuid:4, name:"Emma", age:26}, {_id:"S005", _uuid:5, name:"Pepe", age:24}]) insert().into(@course).nodes([{_id:"C001", _uuid:6, name:"French", credit:4}, {_id:"C002", _uuid:7, name:"Math", credit:5}]) insert().into(@default).edges([{_uuid:1, _from_uuid:1, _to_uuid:6}, {_uuid:2, _from_uuid:2, _to_uuid:6}, {_uuid:3, _from_uuid:3, _to_uuid:6}, {_uuid:4, _from_uuid:2, _to_uuid:7}, {_uuid:5, _from_uuid:3, _to_uuid:7}, {_uuid:6, _from_uuid:4, _to_uuid:7}, {_uuid:7, _from_uuid:5, _to_uuid:7}]) ```

Example: Find the students that select French or Math

UQL
khop().src({name == "French"}).depth(1) as n1
with collect(n1) as l1
khop().src({name == "Math"}).depth(1) as n2
with collect(n2) as l2
return listUnion(l1, l2)
Result
[
  {"id":"","uuid":"1","schema":"student","values":{}},
  {"id":"","uuid":"2","schema":"student","values":{}},
  {"id":"","uuid":"3","schema":"student","values":{}},
  {"id":"","uuid":"4","schema":"student","values":{}},
  {"id":"","uuid":"5","schema":"student","values":{}}
]