Bagaimana untuk Melaksanakan Pertanyaan \'IN\' dengan Integer Slices dalam Google App Engine Datastore dengan Go?

DDD
Lepaskan: 2024-10-28 04:49:30
asal
510 orang telah melayarinya

How to Perform

In Array Query dalam Google App Engine Datastore dengan Go

Dalam App Engine datastore, melakukan pertanyaan "IN" dengan sepotong integer tidak disokong secara langsung menggunakan Fungsi penapis. Walau bagaimanapun, beberapa pendekatan boleh digunakan untuk mencapai kefungsian yang serupa.

Pendekatan 1: Pertanyaan Berbilang Keadaan

Satu pilihan ialah mencipta pertanyaan berasingan untuk setiap elemen dalam kepingan integer. Pendekatan ini sesuai jika bilangan elemen agak kecil.

<code class="go">ids := []int64{1, 2, 3, 4}
var q datastore.Query
for _, id := range ids {
    q = q.Filter("Id =", id)
}</code>
Salin selepas log masuk

Pendekatan 2: Pertanyaan Julat untuk Julat Berterusan

Jika unsur dalam kepingan integer mewakili julat berterusan, anda boleh gunakan operator julat (>= dan <=) untuk menggantikan penapis IN.

<code class="go">ids := []int64{1, 2, 3, 4}
q := datastore.NewQuery("Category").
    Filter("Id >=", 1).
    Filter("Id <=", 4)</p>
<h3>Pendekatan 3: GetMulti for Key IN Query</h3>
<p>Jika sifat yang ditapis ialah kunci entiti , anda boleh menggunakan fungsi datastore.GetMulti() untuk mendapatkan semula berbilang entiti berdasarkan tatasusunan kunci.</p>
<pre class="brush:php;toolbar:false"><code class="go">var keys []*datastore.Key
for _, id := range ids {
    keys = append(keys, datastore.NewKey(c, "Category", "", id, nil))
}
categories := make([]Category, len(keys))
err := datastore.GetMulti(c, keys, categories)</code>
Salin selepas log masuk

Nota:

Pendekatan kedua menggunakan berbilang Panggilan penapis tidak berfungsi dengan betul. Menggunakan berbilang penapis dengan cara ini menghasilkan sambungan DAN logik, dan tiada entiti mungkin akan memenuhi semua syarat secara serentak.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan \'IN\' dengan Integer Slices dalam Google App Engine Datastore dengan Go?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!