Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mendapatkan Entiti dengan Susunan ID dalam Google App Engine Datastore menggunakan Golang?

Bagaimana untuk Mendapatkan Entiti dengan Susunan ID dalam Google App Engine Datastore menggunakan Golang?

Barbara Streisand
Barbara Streisandasal
2024-10-25 17:32:44470semak imbas

How to Retrieve Entities by an Array of IDs in Google App Engine Datastore using Golang?

Mencari Datastore untuk Entiti dengan Tatasusunan ID menggunakan Golang

Dalam Google App Engine Datastore, tiada sokongan langsung untuk melaksanakan " IN" untuk mendapatkan semula entiti berdasarkan tatasusunan ID. Walau bagaimanapun, terdapat pendekatan alternatif untuk mencapai fungsi ini.

Pertanyaan dengan Julat (Jika ID Berturut-turut)

Jika ID membentuk julat berterusan, anda boleh menggunakan ">" (lebih besar daripada) dan "<=" (kurang daripada atau sama dengan) pengendali untuk menentukan julat ID untuk pertanyaan. Contohnya:

<code class="go">ids := []int64{1, 2, 3, 4}
q := datastore.NewQuery("Category").Filter("Id>=", 1).Filter("Id<=", 4)</p>
<p><strong>Laksanakan Berbilang Pertanyaan</strong></p>
<p>Untuk ID yang tidak berada dalam julat berterusan, anda boleh melaksanakan pertanyaan berasingan untuk setiap ID dalam tatasusunan. Ini melibatkan mencipta objek Pertanyaan baharu untuk setiap ID dan menapis mengikut ID tersebut.</p>
<pre class="brush:php;toolbar:false"><code class="go">for _, id := range ids {
    q := datastore.NewQuery("Category").Filter("Id =", id)
    // ... perform query and retrieve entities
}</code>

GetMulti Function

Jika sifat yang anda tapis ialah kunci entiti itu sendiri, anda boleh menggunakan fungsi datastore.GetMulti() untuk mendapatkan semula senarai entiti berdasarkan tatasusunan kuncinya.

<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)
if err != nil {
    // Handle error
}</code>

Nota:

Apabila menggunakan kaedah Penapis() untuk menentukan berbilang penapis, ia akan digabungkan dengan operasi DAN. Oleh itu, percubaan anda untuk menapis mengikut berbilang ID menggunakan q.Filter("Id =", id) berkemungkinan tidak akan menghasilkan entiti yang sepadan melainkan semua ID wujud dalam entiti yang sama.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Entiti dengan Susunan ID dalam Google App Engine Datastore menggunakan Golang?. 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