Cara Mengambil Entiti mengikut ID dalam Google App Engine Datastore dengan Go: Alternatif kepada Pertanyaan \'IN Array\'?

Mary-Kate Olsen
Lepaskan: 2024-10-26 12:50:02
asal
352 orang telah melayarinya

How to Retrieve Entities by IDs in Google App Engine Datastore with Go: Alternatives to

Mendapatkan semula Entiti mengikut ID dalam Google App Engine Datastore dengan Go

Apabila bekerja dengan Google App Engine Datastore, adalah penting untuk melaksanakan pertanyaan yang cekap untuk mendapatkan semula entiti tertentu. Satu pertanyaan sedemikian ialah pertanyaan "IN Array", di mana anda boleh menapis entiti berdasarkan tatasusunan ID.

Cabaran dalam Melaksanakan Pertanyaan "IN Array"

In Pergi, API stor data tidak menyokong penapis tatasusunan "IN" secara langsung. Percubaan untuk menggunakan stor data.NewQuery("Kategori"). Penapis("Id IN", id) akan mengakibatkan ralat.

Pendekatan Alternatif

Semasa "IN " penapis tidak tersedia secara langsung, terdapat pendekatan alternatif untuk mencapai hasil yang sama:

1. Pertanyaan Berulang

Anda boleh melaksanakan pertanyaan berasingan untuk setiap ID dalam tatasusunan. Contohnya:

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

2. Pertanyaan Julat

Jika ID berada dalam julat berterusan, anda boleh menggunakan pertanyaan julat dan bukannya penapis "IN". Contohnya:

<code class="go">ids := []int64{1,2,3,4}
q := datastore.NewQuery("Category").Filter("Id>=", 1).Filter("Id<=", 4)</code>
Salin selepas log masuk

3. Fungsi GetMulti

Jika harta yang anda tapis ialah kunci entiti itu sendiri, anda boleh menggunakan fungsi stor data.GetMulti() untuk mendapatkan semula senarai entiti yang ditentukan oleh tatasusunan kunci mereka. Contohnya:

<code class="go">keys := make([]*datastore.Key, len(ids))
for i, id := range ids {
    keys[i] = datastore.NewKey(c, "Category", "", id, nil)
}

categories := make([]Category, len(keys))
err := datastore.GetMulti(c, keys, categories)</code>
Salin selepas log masuk

Nota:

Pertanyaan berulang mungkin kurang cekap untuk tatasusunan besar. Pertanyaan julat sesuai untuk julat berterusan, tetapi pertanyaan itu tidak menyokong jurang. GetMulti dioptimumkan untuk mendapatkan semula entiti dengan kuncinya.

Atas ialah kandungan terperinci Cara Mengambil Entiti mengikut ID dalam Google App Engine Datastore dengan Go: Alternatif kepada Pertanyaan \'IN Array\'?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!