Rumah >pembangunan bahagian belakang >Golang >Adakah Mungkin untuk Membuat Pertanyaan untuk Entiti dengan Nama Padanan Awalan dalam App Engine Datastore?

Adakah Mungkin untuk Membuat Pertanyaan untuk Entiti dengan Nama Padanan Awalan dalam App Engine Datastore?

DDD
DDDasal
2024-10-24 07:08:021057semak imbas

Is it Possible to Query for Entities with Prefix-Matched Names in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn