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, , nullfalse, 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, , ORNOT
    Perbandingan =, , !=<, >, <=, , >=,<>
    String \|\|(menggabungkan)