Literals

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.

The following query returns emails from contacts where the contact name is ‘dave’.

Query:
SELECT email
FROM contacts 
AS contact
WHERE contact.name = 'dave'
Result:
{"email": "dave@gmail.com"}

Booleans

TRUE | FALSE

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

Numbers

[-] [ digits] [fraction] [exponent] 

Fraction:

. digits    

Exponent:

e | E  [ + | - ]  digits 

Numbers can be either signed or unsigned digits with an optional fractional component and an optional exponent. The numbers should not start with a zero.

Strings

"  characters  "  

Strings can be either Unicode characters or escaped characters.

Characters:
Unicode Character or an Backslash Escape character  
Backslash Escaped characters:
\  ( \ | / | b | f | n | r | t | u hex-digit hex-digit hex-digit hex-digit )

NULL

The literal NULL represents an empty value.

NULL

MISSING

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

MISSING