Share via


WHERE 子句 (NoSQL 查詢)

適用於:NoSQL

選擇性 WHERE 子句 (WHERE <filter_condition>) 會指定來源 JSON 專案必須滿足的條件,查詢才能將它們包含在結果中。 JSON 項目都必須將指定的條件評估為 true,才能視為結果。 索引層會 WHERE 使用 子句來判斷可屬於結果之來源專案的最小子集。

語法

WHERE <filter_condition>  
<filter_condition> ::= <scalar_expression>
描述
<filter_condition> 指定要傳回之專案的符合條件。
<scalar_expression> 表示要計算之值的運算式。

注意

如需純量表達式的詳細資訊,請參閱 純量表達式

範例

第一個範例會使用簡單的相等查詢來傳回專案的子集。 運算子 = 會與 子句搭配 WHERE 使用,以根據簡單相等建立篩選。

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"
  }
]

在下一個範例中,更複雜的篩選是由純量表達式所組成

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
  }
]

在此最後一個範例中,布爾屬性的屬性參考會當做篩選使用。

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

備註

  • 若要傳回專案,指定為篩選條件的表達式必須評估為 true。 只有布爾值 true 符合條件、任何其他值: undefinednullfalse數位純量、陣列或物件不符合條件。

  • 如果您在 子句中包含 WHERE 分割區索引鍵作為相等篩選的一部分,則查詢會自動篩選至相關的分割區。

  • 您可以使用以下支援的二元運算子:

    操作員 範例
    演算法 +-、、/*%
    \|&^<<、、、>>>>>零填右移位)
    邏輯 AND、 、 ORNOT
    比較 =!=、、><<=、、、 >=<>
    String \|\|(串連)