Rumah > pembangunan bahagian belakang > Golang > Mengapa Pertanyaan Google App Engine Datastore Saya Tidak Menapis dengan Betul?

Mengapa Pertanyaan Google App Engine Datastore Saya Tidak Menapis dengan Betul?

Susan Sarandon
Lepaskan: 2024-12-07 05:27:13
asal
469 orang telah melayarinya

Why Aren't My Google App Engine Datastore Queries Filtering Correctly?

Menapis Pertanyaan GAE

Apabila cuba menapis pertanyaan GAE, isu biasa timbul apabila penapis kelihatan tidak berkesan. Untuk menangani masalah ini, adalah penting untuk memahami cara kaedah Query.Filter() beroperasi.

Kaedah Query.Filter() mengembalikan pertanyaan derivatif yang merangkumi penapis yang ditentukan. Walau bagaimanapun, adalah penting untuk menetapkan nilai pulangan kepada pembolehubah baharu untuk mengekalkan penapis:

q = datastore.NewQuery("employee").Filter("Name =", "Andrew W")
Salin selepas log masuk

Sebagai alternatif, penapisan baharu boleh dicapai dalam satu baris:

q := datastore.NewQuery("employee").Filter("Name =", "Andrew W")
Salin selepas log masuk

Tanpa langkah ini, pertanyaan yang dilaksanakan tidak akan mempunyai penapis, mengakibatkan pengambilan semula semua entiti "pekerja" yang disimpan. Akibatnya, "Joe Citizen" mungkin merupakan entiti pertama yang dicetak.

Selain itu, ketekalan akhirnya mesti dipertimbangkan. Selepas melakukan operasi Put(), pertanyaan seterusnya mungkin tidak serta-merta melihat hasil yang dijangkakan kerana penggunaan SDK pembangunan. Untuk mengurangkan isu ini, masa.Sleep() boleh diperkenalkan sebelum melaksanakan pertanyaan:

time.Sleep(time.Second)
q := datastore.NewQuery("employee").Filter("Name =", "Andrew W")
Salin selepas log masuk

Dalam pengeluaran, konsistensi yang kukuh boleh disimulasikan dengan mencipta konteks dengan pilihan berikut:

c, err := aetest.NewContext(&aetest.Options{StronglyConsistentDatastore: true})
Salin selepas log masuk

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kunci nenek moyang harus digunakan untuk hasil yang sangat konsisten dalam pengeluaran.

Atas ialah kandungan terperinci Mengapa Pertanyaan Google App Engine Datastore Saya Tidak Menapis dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan