WHERE clause (NoSQL query)

APPLIES TO: NoSQL

The optional WHERE clause (WHERE <filter_condition>) specifies condition(s) that the source JSON items must satisfy for the query to include them in results. A JSON item must evaluate the specified conditions to true to be considered for the result. The index layer uses the WHERE clause to determine the smallest subset of source items that can be part of the result.

Syntax

WHERE <filter_condition>  
<filter_condition> ::= <scalar_expression>
Description
<filter_condition> Specifies the condition to be met for the items to be returned.
<scalar_expression> Expression representing the value to be computed.

Note

For more information on scalar expressions, see scalar expressions

Examples

This first example uses a simple equality query to return a subset of items. The = operator is used with the WHERE clause to create a filter based on simple equality.

SELECT VALUE {
    employeeName: e.name,
    currentTeam: e.team
}
FROM
    employees e
WHERE
    e.team = "Hospitality"
[
  {
    "employeeName": "Jordan Mitchell",
    "currentTeam": "Hospitality"
  },
  {
    "employeeName": "Ashley Schroeder",
    "currentTeam": "Hospitality"
  },
  {
    "employeeName": "Tomas Richardson",
    "currentTeam": "Hospitality"
  }
]

In this next example, a more complex filter is composed of scalar expressions.

SELECT VALUE {
    employeeName: e.name,
    vacationDaysRemaining: e.vacationDays
}
FROM
    employees e
WHERE
    e.vacationDays >= 7
[
  {
    "employeeName": "Ana Bowman",
    "vacationDaysRemaining": 10
  },
  {
    "employeeName": "Madison Butler",
    "vacationDaysRemaining": 7
  }
]

In this final example, a property reference to a boolean property is used as the filter.

SELECT VALUE {
    employeeName: e.name,
    isPartTime: e.partTime
}
FROM
    employees e
WHERE
    e.partTime
[
  {
    "employeeName": "Riley Ramirez",
    "isPartTime": true
  },
  {
    "employeeName": "Caleb Foster",
    "isPartTime": true
  }
]

Remarks

  • In order for an item to be returned, an expression specified as a filter condition must evaluate to true. Only the boolean value true satisfies the condition, any other value: undefined, null, false, a number scalar, an array, or an object doesn't satisfy the condition.

  • If you include your partition key in the WHERE clause as part of an equality filter, your query automatically filters to only the relevant partitions.

  • You can use the following supported binary operators:

    Operators Examples
    Arithmetic +,-,*,/,%
    Bitwise \|, &, ^, <<, >>, >>> (zero-fill right shift)
    Logical AND, OR, NOT
    Comparison =, !=, <, >, <=, >=, <>
    String \|\| (concatenate)