Construction Operators

N1QL supports array and object construction operators.

Array construction

[ elements [, elements ]* ]

Elements

expression

Arrays are ordered lists with 0 or more values. These values can be one of the defined types. Arrays are enclosed in square brackets ([ ] ). Commas separate each value. For example: ["one", "two", "three"] and [1, 2, 3].

Object construction

{ members [ , members ]* }

members:

string : expression

Objects contain name value members. Objects are enclosed in curly braces {}. Commas separate each pair (member). The colon (:) character separates the key or name from its value within each pair. All keys must be strings and should be distinct from each other within that object. The value can be any supported JSON data type.

Starting from version 4.5.1, you can use dynamic names in the name-value pairs. The names and values can both be arbitrary expressions. If a name does not evaluate to a string, the result of the object construction is NULL.

Example
SELECT { UPPER("foo") : 1, "foo" || "bar" : 2 };
[
  {
    "$1": {
      "FOO": 1,
      "foobar": 2
    }
  }
]
Starting version 4.5.1, member names are optional when constructing dynamic objects.