A newer version of this documentation is available.

View Latest

Literals

    +
    Literal values include strings, numbers, TRUE, FALSE, NULL, and MISSING.

    N1QL supports the same literals as JSON, as defined by json.org, with these exceptions:

    • In N1QL, "true", "false," and "null" are case-insensitive to be consistent with other N1QL keywords. In standard JSON, "true", "false," and "null" are case-sensitive.

    • "missing" is added as a literal expression, although it is not returned in final results. Missing is omitted from objects, and is converted to null in result arrays.

    • In N1QL single and double quotation marks can be used for strings. JSON supports only double quotation marks.

    Wherever a value is expected, either of two special values may appear: NULL (denoting an out-of-band value that is not comparable to any other value), and MISSING (denoting the absence of a value). Every value also has a "truth" value; these truth value conversions are explained in Boolean Logic.

    Booleans

    TRUE | FALSE
    Syntax diagram

    Boolean propositions evaluate to TRUE and FALSE. These values are case-insensitive.

    Numbers

    [-] [integer] [fraction] [exponent]
    Syntax diagram

    Integer:

    Syntax diagram

    Fraction:

    . digits
    Syntax diagram

    Exponent:

    e | E  [ + | - ]  digits
    Syntax diagram

    Numbers can be either signed or unsigned integers with an optional fractional component and an optional exponent. If the integer component has more than one digit, the number should not start with a leading zero.

    Strings

    " char* " | ' char* '
    Syntax diagram

    Strings can be either Unicode characters or escaped characters.

    Character:

    unicode-character |
    \  ( \ | / | b | f | n | r | t | u hex-digit hex-digit hex-digit hex-digit )
    Syntax diagram

    Hex digit:

    Syntax diagram

    NULL

    The literal NULL represents an empty value.

    NULL
    Syntax diagram

    This value is case-insensitive.

    MISSING

    The MISSING literal is specific to N1QL and represents a missing name-value pair in a document.

    MISSING
    Syntax diagram

    This value is case-insensitive.