Rumah >pembangunan bahagian belakang >Golang >Adakah Mungkin untuk Membuat Pertanyaan untuk Entiti dengan Nama Padanan Awalan dalam App Engine Datastore?
Cari Entiti dengan Nama Awalan dalam Google App Engine Datastore
Soalan:
Adakah layak untuk mendapatkan semula entiti daripada Datastore di mana medan tertentu bermula dengan rentetan tertentu? Walaupun mencuba pertanyaan berikut, saya tidak dapat memperoleh hasil yang diingini:
q = datastore.NewQuery("Places").Filter("Name >", "a")
Jawapan:
Entiti pertanyaan berdasarkan awalan medan sememangnya disokong dalam Datastore , tetapi ia memerlukan gabungan dua penapis ketaksamaan.
Sebagai contoh, untuk mendapatkan semula Tempat dengan nama bermula dengan "li", pertanyaan harus menyatakan bahawa medan Nama lebih besar daripada (atau sama dengan) "li" dan kurang daripada "lj." Ini kerana "lj" ialah awalan seterusnya dari segi leksikografi.
Dalam GQL, pertanyaan ini akan muncul sebagai:
SELECT * FROM Places WHERE Name > 'li' AND Name < 'lj'
Dalam kod Go, pertanyaan itu dalam bentuk:
q = datastore.NewQuery("Places").Filter("Name >", "li").Filter("Name <", "lj")
Pertanyaan ini akan menghasilkan Tempat dengan nama seperti:
liam lisotto lizst
Walau bagaimanapun, ia akan mengecualikan nama yang menyerupai:
abc ljoi lj qwerty
Perhatikan bahawa huruf besar dan huruf kecil mempunyai leksikografi yang berbeza pesanan. Oleh itu, "Senarai" mendahului "li", manakala "senarai" mengikuti "li."
Atas ialah kandungan terperinci Adakah Mungkin untuk Membuat Pertanyaan untuk Entiti dengan Nama Padanan Awalan dalam App Engine Datastore?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!