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
符合條件、任何其他值:undefined
、null
、false
數位純量、陣列或物件不符合條件。如果您在 子句中包含
WHERE
分割區索引鍵作為相等篩選的一部分,則查詢會自動篩選至相關的分割區。您可以使用以下支援的二元運算子:
操作員 範例 算術 +
、-
、、/
*
、%
位 \|
、&
、^
、<<
、、>>>
>>
、(零填右移位)邏輯 AND
、 、OR
NOT
比較 =
、!=
、、>
<
、<=
、、、>=
<>
String \|\|
(串連)