Clausola WHERE (query NoSQL)
SI APPLICA A: NoSQL
La clausola facoltativa WHERE
(WHERE <filter_condition>
) specifica le condizioni che gli elementi JSON di origine devono soddisfare affinché la query li includa nei risultati. Per essere considerato per il risultato, un elemento JSON deve valutare le condizioni specificate come true
. Il livello di indice usa la WHERE
clausola per determinare il sottoinsieme più piccolo di elementi di origine che possono far parte del risultato.
Sintassi
WHERE <filter_condition>
<filter_condition> ::= <scalar_expression>
Descrizione | |
---|---|
<filter_condition> |
Specifica la condizione da soddisfare per la restituzione degli elementi. |
<scalar_expression> |
Espressione che rappresenta il valore da calcolare. |
Nota
Per altre informazioni sulle espressioni scalari, vedere Espressioni scalari
Esempi
Questo primo esempio usa una semplice query di uguaglianza per restituire un subset di elementi. L'operatore =
viene usato con la WHERE
clausola per creare un filtro basato su un'uguaglianza semplice.
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 questo esempio successivo un filtro più complesso è costituito da espressioni scalari.
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 questo esempio finale viene utilizzato come filtro un riferimento a una proprietà booleana.
SELECT VALUE {
employeeName: e.name,
isPartTime: e.partTime
}
FROM
employees e
WHERE
e.partTime
[
{
"employeeName": "Riley Ramirez",
"isPartTime": true
},
{
"employeeName": "Caleb Foster",
"isPartTime": true
}
]
Osservazioni:
Affinché venga restituito un elemento, un'espressione specificata come condizione di filtro deve restituire true. Solo il valore
true
booleano soddisfa la condizione, qualsiasi altro valore:undefined
,null
,false
, un numero scalare, una matrice o un oggetto non soddisfa la condizione.Se si include la chiave di partizione nella
WHERE
clausola come parte di un filtro di uguaglianza, la query filtra automaticamente solo le partizioni pertinenti.È possibile usare i seguenti operatori binari supportati:
Operatori Esempi Aritmetico +
,-
,*
,/
,%
Bit per bit \|
^
,&
,<<
,>>
(>>>
spostamento a destra di riempimento zero)Logico AND
,OR
,NOT
Confronto =
,!=
,<
,>
<=
, ,>=
<>
Stringa \|\|
(concatenazione)