通过 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)</p> <p><strong>GetMulti</strong></p> <p>对于实体键属性的查询,可以使用 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>
Filter Behaviour
注意多个 Query.Filter()调用将导致过滤器之间形成 AND 连接。如果您期望使用 OR 连接,这可能会产生意外结果。确保存储返回的查询并将其用作后续过滤器的基础:
<code class="go">q := q.Filter("Id=", id)</code>
以上是以下是一些标题选项,结合问答格式,重点关注问题和解决方案: 直接、简洁: * 如何在 Google App Engine Datastore (Go) 中通过 ID 数组进行查询? * 数据存储Q的详细内容。更多信息请关注PHP中文网其他相关文章!