Klausa WHERE (kueri NoSQL)
BERLAKU UNTUK: NoSQL
Klausa opsional WHERE
(WHERE <filter_condition>
) menentukan kondisi yang harus dipenuhi item JSON sumber agar kueri menyertakannya dalam hasil. Item JSON harus mengevaluasi kondisi yang ditentukan ke true
untuk dipertimbangkan hasilnya. Lapisan indeks menggunakan klausul WHERE
untuk menentukan subset terkecil dari item sumber yang dapat menjadi bagian dari hasil.
Sintaks
WHERE <filter_condition>
<filter_condition> ::= <scalar_expression>
Deskripsi | |
---|---|
<filter_condition> |
Menentukan kondisi yang akan dipenuhi agar item dikembalikan. |
<scalar_expression> |
Ekspresi yang mewakili nilai yang akan dikomputasi. |
Catatan
Untuk informasi selengkapnya tentang ekspresi skalar, lihat ekspresi skalar
Contoh
Contoh pertama ini menggunakan kueri kesetaraan sederhana untuk mengembalikan subset item. Operator =
digunakan dengan WHERE
klausul untuk membuat filter berdasarkan kesetaraan sederhana.
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"
}
]
Dalam contoh berikutnya, filter yang lebih kompleks terdiri dari ekspresi skalar.
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
}
]
Dalam contoh akhir ini, referensi properti ke properti boolean digunakan sebagai 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
}
]
Keterangan
Agar item dikembalikan, ekspresi yang ditentukan sebagai kondisi filter harus dievaluasi ke true. Hanya nilai
true
boolean yang memenuhi kondisi, nilai lain:undefined
, ,null
false
, skalar angka, array, atau objek yang tidak memenuhi kondisi.Jika Anda menyertakan kunci partisi dalam
WHERE
klausul sebagai bagian dari filter kesetaraan, kueri Anda secara otomatis memfilter hanya ke partisi yang relevan.Anda dapat menggunakan operator biner yang didukung berikut:
Operator Contoh Aritmatika +
,-
,,*
,/
,%
Bitwise \|
, ,&
,<<
^
,>>
,>>>
(shift kanan pengisian nol)Logis AND
, ,OR
NOT
Perbandingan =
, ,!=
<
,>
,<=
, ,>=
,<>
String \|\|
(menggabungkan)