執行「IN Array」查詢,其中檢查資料儲存區中特定屬性的多個值,由於缺乏對此類查詢的本機支持,因此需要在Go 中採用不同的方法。
一種選擇是對數組中要作為篩選依據的每個元素執行單獨的查詢。例如:
<code class="go">ids := []int64{1, 2, 3, 4} for _, id := range ids { q := datastore.NewQuery("Category").Filter("Id =", id) // Execute the query and process the results for each element }</code>
如果陣列中的元素形成連續範圍,則可以使用 >= 和
<code class="go">ids := []int64{1, 2, 3, 4} q := datastore.NewQuery("Category").Filter("Id >=", 1).Filter("Id <=", 4)</code>
如果要過濾的屬性是實體鍵本身,您可以使用 datastore.GetMulti() 函數根據實體鍵數組檢索實體列表。
<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 { return nil, err }</code>
注意:請記住,使用 AND 的複合過濾器可能會傳回意外結果,因為多個過濾器將按邏輯應用。
以上是如何使用 Go 在 Google App Engine 資料儲存中執行「IN Array」查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!