Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melaksanakan Pertanyaan \"IN\" dengan Integer Slices dalam Google App Engine Datastore dengan Go?

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

DDD
DDDasal
2024-10-28 04:49:30513semak imbas

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>

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>

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!

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