Operators
The following operators can be used in SELECT and WHERE clauses.
AND operator
Returns a Boolean
result. Performs a logical AND operation. Returns
true if left and right operands are true. Otherwise, returns false.
Boolean
operands or case insensitive "true" or "false" string
operands are required.
Syntax:
.expression
AND
expression
AND operator  

Left operand  Right operand  Output  
Boolean 
Boolean 
Boolean . True if both operands are true. Otherwise,
false. 

String /Boolean 
String /Boolean 
If all strings are "true" or "false" (case insensitive), they are
converted to Boolean and processed normally as
. 

Other value  Other value  Undefined . 
OR operator
Returns a Boolean
result. Performs a logical OR operation. Returns
true if either the left or the right operands are true. Otherwise, returns false.
Boolean
operands or case insensitive "true" or "false" string
operands are required.
Syntax:
.expression
OR
expression
OR operator  

Left operand  Right operand  Output  
Boolean 
Boolean 
Boolean . True if either operand is true. Otherwise,
false. 

String /Boolean 
String /Boolean 
If all strings are "true" or "false" (case insensitive), they are
converted to Booleans and processed normally as
. 

Other value  Other value  Undefined . 
NOT operator
Returns a Boolean
result. Performs a logical NOT operation. Returns
true if the operand is false. Otherwise, returns true. A Boolean
operand or case insensitive "true" or "false" string operand is required.
Syntax:
NOT
.expression
NOT operator  

Operand  Output  
Boolean 
Boolean . True if operand is false. Otherwise,
true. 

String 
If string is "true" or "false" (case insensitive), it is converted to the corresponding Boolean value, and the opposite value is returned.  
Other value  Undefined . 
IN operator
Returns a Boolean
result. You can use the IN operator in a WHERE
clause to check if a value matches any value in an array. It returns true if the
match is found, and false otherwise.
Syntax:
.expression
IN
expression
IN operator  

Left operand  Right operand  Output  
Int /Decimal /String /Array /Object 
Array 
True if the Integer /Decimal /String /Array /Object element is found
in the array. Otherwise, false. 
Example:
SQL: "select * from 'a/b' where 3 in arr" JSON: {"arr":[1, 2, 3, "three", 5.7, null]}
In this example, the condition clause where 3 in arr
will evaluate to
true because 3 is present in the array named arr
. Hence in the SQL
statement, select * from 'a/b'
will execute. This example also shows
that the array can be heterogeneous.
EXISTS operator
Returns a Boolean
result. You can use the EXISTS operator in a
conditional clause to test for the existence of elements in a subquery. It returns
true if the subquery returns one or more elements and false if the subquery returns
no elements.
Syntax:
.expression
Example:
SQL: "select * from 'a/b' where exists (select * from arr as a where a = 3)" JSON: {"arr":[1, 2, 3]}
In this example, the condition clause where exists (select * from arr as a
where a = 3)
will evaluate to true because 3 is present in the array
named arr
. Hence in the SQL statement, select * from 'a/b'
will execute.
Example:
SQL: select * from 'a/b' where exists (select * from e as e where foo = 2) JSON: {"foo":4,"bar":5,"e":[{"foo":1},{"foo":2}]}
In this example, the condition clause where exists (select * from e as e
where foo = 2)
will evaluate to true because the array e
within the JSON object contains the object {"foo":2}
. Hence in the SQL
statement, select * from 'a/b'
will execute.
> operator
Returns a Boolean
result. Returns true if the left operand is greater
than the right operand. Both operands are converted to a Decimal
, and
then compared.
Syntax:
.expression
>
expression
> operator  

Left operand  Right operand  Output  
Int /Decimal 
Int /Decimal 
Boolean . True if the left operand is greater than
the right operand. Otherwise, false. 

String /Int /Decimal 
String /Int /Decimal 
If all strings can be converted to Decimal , then
Boolean . Returns true if the left operand is
greater than the right operand. Otherwise, false. 

Other value  Undefined . 
Undefined . 
>= operator
Returns a Boolean
result. Returns true if the left operand is greater
than or equal to the right operand. Both operands are converted to a
Decimal
, and then compared.
Syntax:
.expression
>=
expression
>= operator  

Left operand  Right operand  Output  
Int /Decimal 
Int /Decimal 
Boolean . True if the left operand is greater than or
equal to the right operand. Otherwise, false. 

String /Int /Decimal 
String /Int /Decimal 
If all strings can be converted to Decimal , then
Boolean . Returns true if the left operand is
greater than or equal to the right operand. Otherwise,
false. 

Other value  Undefined . 
Undefined . 
< operator
Returns a Boolean
result. Returns true if the left operand is less
than the right operand. Both operands are converted to a Decimal
, and
then compared.
Syntax:
.expression
<
expression
< operator  

Left operand  Right operand  Output  
Int /Decimal 
Int /Decimal 
Boolean . True if the left operand is less than the
right operand. Otherwise, false. 

String /Int /Decimal 
String /Int /Decimal 
If all strings can be converted to Decimal , then
Boolean . Returns true if the left operand is less
than the right operand. Otherwise, false. 

Other value  Undefined 
Undefined 
<= operator
Returns a Boolean
result. Returns true if the left operand is less
than or equal to the right operand. Both operands are converted to a
Decimal
, and then compared.
Syntax:
.expression
<=
expression
<= operator  

Left operand  Right operand  Output  
Int /Decimal 
Int /Decimal 
Boolean . True if the left operand is less than or
equal to the right operand. Otherwise, false. 

String /Int /Decimal 
String /Int /Decimal 
If all strings can be converted to Decimal , then
Boolean . Returns true if the left operand is less
than or equal to the right operand. Otherwise, false. 

Other value  Undefined 
Undefined 
<> operator
Returns a Boolean
result. Returns true if both left and right
operands are not equal. Otherwise, returns false.
Syntax:
.expression
<>
expression
<> operator  

Left operand  Right operand  Output  
Int 
Int 
True if left operand is not equal to right operand. Otherwise, false.  
Decimal 
Decimal 
True if left operand is not equal to right operand. Otherwise,
false.Int is converted to Decimal
before being compared. 

String 
String 
True if left operand is not equal to right operand. Otherwise, false.  
Array  Array  True if the items in each operand are not equal and not in the same order. Otherwise, false  
Object  Object  True if the keys and values of each operand are not equal. Otherwise, false. The order of keys/values is unimportant.  
Null  Null  False.  
Any value  Undefined 
Undefined.  
Undefined 
Any value  Undefined.  
Mismatched type  Mismatched type  True. 
= operator
Returns a Boolean
result. Returns true if both left and right
operands are equal. Otherwise, returns false.
Syntax:
.expression
=
expression
= operator  

Left operand  Right operand  Output  
Int 
Int 
True if left operand is equal to right operand. Otherwise, false.  
Decimal 
Decimal 
True if left operand is equal to right operand. Otherwise,
false.Int is converted to Decimal
before being compared. 

String 
String 
True if left operand is equal to right operand. Otherwise, false.  
Array  Array  True if the items in each operand are equal and in the same order. Otherwise, false.  
Object  Object  True if the keys and values of each operand are equal. Otherwise, false. The order of keys/values is unimportant.  
Any value  Undefined 
Undefined . 

Undefined 
Any value  Undefined . 

Mismatched type  Mismatched type  False. 
+ operator
The "+" is an overloaded operator. It can be used for string concatenation or addition.
Syntax:
.expression
+
expression
+ operator  

Left operand  Right operand  Output  
String 
Any value  Converts the right operand to a string and concatenates it to the end of the left operand.  
Any value  String 
Converts the left operand to a string and concatenates the right operand to the end of the converted left operand.  
Int 
Int 
Int value. Adds operands together. 

Int /Decimal 
Int /Decimal 
Decimal value. Adds operands together. 

Other value  Other value  Undefined . 
 operator
Subtracts the right operand from the left operand.
Syntax:
.expression

expression
 operator  

Left operand  Right operand  Output  
Int 
Int 
Int value. Subtracts right operand from left
operand. 

Int /Decimal 
Int /Decimal 
Decimal value. Subtracts right operand from left
operand. 

String /Int /Decimal 
String /Int /Decimal 
If all strings convert to decimals correctly, a
Decimal value is returned. Subtracts right operand
from left operand. Otherwise, returns
Undefined . 

Other value  Other value  Undefined . 

Other value  Other value  Undefined . 
* operator
Multiplies the left operand by the right operand.
Syntax:
.expression
*
expression
* operator  

Left operand  Right operand  Output  
Int 
Int 
Int value. Multiplies the left operand by the right
operand. 

Int /Decimal 
Int /Decimal 
Decimal value. Multiplies the left operand by the
right operand. 

String /Int /Decimal 
String /Int /Decimal 
If all strings convert to decimals correctly, a
Decimal value is returned. Multiplies the left
operand by the right operand. Otherwise, returns
Undefined . 

Other value  Other value  Undefined . 
/ operator
Divides the left operand by the right operand.
Syntax:
.expression
/
expression
/ operator  

Left operand  Right operand  Output  
Int 
Int 
Int value. Divides the left operand by the right
operand. 

Int /Decimal 
Int /Decimal 
Decimal value. Divides the left operand by the right
operand. 

String /Int /Decimal 
String /Int /Decimal 
If all strings convert to decimals correctly, a
Decimal value is returned. Divides the left operand
by the right operand. Otherwise, returns
Undefined . 

Other value  Other value  Undefined . 
% operator
Returns the remainder from dividing the left operand by the right operand.
Syntax:
.expression
%
expression
% operator  

Left operand  Right operand  Output  
Int 
Int 
Int value. Returns the remainder from dividing the
left operand by the right operand. 

String /Int /Decimal 
String /Int /Decimal 
If all strings convert to decimals correctly, a
Decimal value is returned. Returns the remainder
from dividing the left operand by the right operand. Otherwise,
Undefined . 

Other value  Other value  Undefined . 