Klauzule WHERE (dotaz NoSQL)
PLATÍ PRO: NoSQL
Volitelná WHERE
klauzule (WHERE <filter_condition>
) určuje podmínky, které musí zdrojové položky JSON splňovat, aby dotaz zahrnul do výsledků. Položka JSON musí vyhodnotit zadané podmínky, které se true
mají považovat za výsledek. Vrstva indexu WHERE
pomocí klauzule určí nejmenší podmnožinu zdrojových položek, které mohou být součástí výsledku.
Syntaxe
WHERE <filter_condition>
<filter_condition> ::= <scalar_expression>
Popis | |
---|---|
<filter_condition> |
Určuje podmínku, která má být splněna, aby se položky vrátily. |
<scalar_expression> |
Výraz představující hodnotu, která se má vypočítat. |
Poznámka:
Další informace o skalárních výrazech najdete v tématu skalární výrazy.
Příklady
Tento první příklad používá jednoduchý dotaz rovnosti k vrácení podmnožina položek. Operátor =
se používá s WHERE
klauzulí k vytvoření filtru na základě jednoduché rovnosti.
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"
}
]
V tomto dalším příkladu se složitější filtr skládá ze skalárních výrazů.
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
}
]
V tomto posledním příkladu se jako filtr použije odkaz na logickou vlastnost.
SELECT VALUE {
employeeName: e.name,
isPartTime: e.partTime
}
FROM
employees e
WHERE
e.partTime
[
{
"employeeName": "Riley Ramirez",
"isPartTime": true
},
{
"employeeName": "Caleb Foster",
"isPartTime": true
}
]
Poznámky
Aby bylo možné vrátit položku, musí být výraz zadaný jako podmínka filtru vyhodnocen jako true. Podmínku splňuje pouze logická hodnota, jakákoli jiná hodnota
true
:undefined
,null
, ,false
číselný skalár, pole nebo objekt nesplňuje podmínku.Pokud do klauzule zahrnete klíč oddílu
WHERE
jako součást filtru rovnosti, dotaz automaticky filtruje jenom relevantní oddíly.Můžete použít následující podporované binární operátory:
Operátory Příklady Aritmetika +
,-
,*
,/
,%
Bitový \|
,&
,^
,<<
, ,>>
,>>>
(posun doprava s nulovou výplní)Logický AND
, ,OR
NOT
Porovnání =
,!=
,<
,>
,<=
, ,>=
<>
Řetězec \|\|
(zřetězení)