WHERE-sats (NoSQL-fråga)
GÄLLER FÖR: NoSQL
Den valfria WHERE
satsen (WHERE <filter_condition>
) anger villkor som JSON-källobjekten måste uppfylla för att frågan ska inkludera dem i resultat. Ett JSON-objekt måste utvärdera de angivna villkor true
som ska beaktas för resultatet. Indexlagret använder WHERE
-satsen för att fastställa den minsta delmängden av källobjekt som kan ingå i resultatet.
Syntax
WHERE <filter_condition>
<filter_condition> ::= <scalar_expression>
beskrivning | |
---|---|
<filter_condition> |
Anger villkoret som ska uppfyllas för de objekt som ska returneras. |
<scalar_expression> |
Uttryck som representerar det värde som ska beräknas. |
Kommentar
Mer information om skalära uttryck finns i skalära uttryck
Exempel
Det första exemplet använder en enkel likhetsfråga för att returnera en delmängd av objekt. Operatorn =
används med WHERE
-satsen för att skapa ett filter baserat på enkel likhet.
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"
}
]
I nästa exempel består ett mer komplext filter av skalära uttryck.
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
}
]
I det här sista exemplet används en egenskapsreferens till en boolesk egenskap som 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
}
]
Kommentarer
För att ett objekt ska returneras måste ett uttryck som anges som ett filtervillkor utvärderas till true. Endast det booleska värdet
true
uppfyller villkoret, något annat värde:undefined
,null
,false
, en talskalar, en matris eller ett objekt uppfyller inte villkoret.Om du inkluderar partitionsnyckeln
WHERE
i -satsen som en del av ett likhetsfilter filtreras frågan automatiskt till endast relevanta partitioner.Du kan använda följande binära operatorer som stöds:
Operatorer Exempel Aritmetik +
,-
,*
,/
,%
Bitvis \|
,&
,^
,<<
,>>
,>>>
(nollfyllt högerskift)Logisk AND
, ,OR
NOT
Jämförelse =
,!=
,<
,>
,<=
, , ,>=
<>
Sträng \|\|
(sammanfoga)