透過Go 在Google App Engine 資料儲存區中使用「IN Array」查詢
透過ID 陣列查詢
問:如何在包含ID 陣列的資料儲存上執行查詢?
答:資料儲存本身不支援「IN」查詢。
多個查詢
解決方法是對 ID 陣列中的每個元素執行單獨的查詢。或者,如果ID 在連續範圍內,您可以使用“>=”和“
<code class="go">ids := []int64{1, 2, 3, 4} q := datastore.NewQuery("Category").Filter("Id>=", 1).Filter("Id<=", 4)</code>
GetMulti
對於實體鍵屬性的查詢,可以使用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)</code>
Filter Behaviour
注意多個Query.Filter()呼叫將導致過濾器之間形成AND 連接。如果您期望使用 OR 連接,這可能會產生意外結果。確保儲存返回的查詢並將其用作後續過濾器的基礎:
<code class="go">q := q.Filter("Id=", id)</code>
以上是以下是一些標題選項,結合問答格式,重點放在問題和解決方案: 直接、簡潔: * 如何在 Google App Engine Datastore (Go) 中透過 ID 陣列進行查詢? * 資料儲存Q的詳細內容。更多資訊請關注PHP中文網其他相關文章!