Pengenalan:
Mencari entiti di mana medan nama bermula dengan rentetan tertentu adalah keperluan biasa dalam pertanyaan data. Google App Engine Datastore menyediakan cara untuk mencapai ini, tetapi ia mungkin tidak dapat dilihat dengan serta-merta. Artikel ini menunjukkan cara membina pertanyaan sedemikian dan meneroka penyelesaian alternatif dalam perkhidmatan Enjin Apl lain.
Pernyataan Masalah:
"Saya telah cuba mendapatkan semula tempat yang namanya bermula dengan rentetan tertentu menggunakan pertanyaan penapis, tetapi ia tidak berfungsi adakah fungsi ini disokong dalam Datastore, dan jika tidak, apakah beberapa penyelesaian yang mungkin?"
Pembinaan Pertanyaan:
Gerak hati di sebalik pertanyaan awalan adalah untuk menapis entiti yang namanya lebih besar daripada rentetan awalan. Walau bagaimanapun, menggunakan hanya satu penapis ketaksamaan (cth., Nama > "a") akan gagal kerana ia mengecualikan semua entiti dengan nama bermula dengan awalan.
Penyelesaian terletak pada menggabungkan dua penapis ketaksamaan. Kita perlu menentukan bahawa nama itu lebih besar daripada atau sama dengan rentetan awalan dan kurang daripada rentetan leksikografik seterusnya.
Contoh Pertanyaan:
Mari kita dapatkan semula tempat yang mulakan dengan "li":
q = datastore.NewQuery("Places").Filter("Name >=", "li").Filter("Name <", "lj")
Penjelasan:
Penyelesaian Alternatif:
Jika pendekatan ini tidak memenuhi keperluan khusus, App Engine menawarkan perkhidmatan lain untuk pertanyaan lanjutan:
Atas ialah kandungan terperinci Bagaimana untuk Mencari Rentetan dengan Awalan dalam App Engine Datastore?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!