Menggunakan Pertanyaan "IN Array" dalam Google App Engine Datastore dengan Go
Menyiasat oleh ID Array
S: Bagaimanakah saya boleh melakukan pertanyaan pada Datastore yang merangkumi tatasusunan ID?
J: Datastore tidak menyokong pertanyaan "IN" secara asli.
Berbilang Pertanyaan
Penyelesaian adalah dengan melaksanakan pertanyaan berasingan untuk setiap elemen dalam tatasusunan ID. Sebagai alternatif, jika ID berada dalam julat berterusan, anda boleh menggunakan pengendali ">=" dan "<=":
<code class="go">ids := []int64{1, 2, 3, 4} q := datastore.NewQuery("Category").Filter("Id>=", 1).Filter("Id<=", 4)</p> <p><strong>GetMulti</strong></p> <p> Untuk pertanyaan tentang sifat kunci entiti, anda boleh menggunakan fungsi datastore.GetMulti():</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>
Gelagat Penapis
Perhatikan bahawa berbilang Query.Filter() panggilan akan menghasilkan sambungan DAN antara penapis. Ini mungkin menghasilkan hasil yang tidak dijangka jika anda menjangkakan sambungan ATAU. Pastikan anda menyimpan pertanyaan yang dikembalikan dan menggunakannya sebagai asas untuk penapis seterusnya:
<code class="go">q := q.Filter("Id=", id)</code>
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, menggabungkan format Soal Jawab dengan fokus pada masalah dan penyelesaian: Langsung dan Ringkas: * Bagaimana untuk Membuat Pertanyaan mengikut Tatasusunan ID dalam Google App Engine Datastore (Go)? * Datastore Q. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!