Go を使用した Google App Engine データストアでの「IN 配列」クエリの使用
ID 配列によるクエリ
Q: ID の配列を含むデータストアでクエリを実行するにはどうすればよいですか?
A: データストアは「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>
フィルター動作
複数の Query.Filter() に注意してください。呼び出しにより、フィルター間の AND 接続が行われます。 OR 接続を期待している場合、予期しない結果が生じる可能性があります。返されたクエリを必ず保存し、それを後続のフィルターの基礎として使用してください:
<code class="go">q := q.Filter("Id=", id)</code>
以上がここでは、問題と解決策に焦点を当てた Q&A 形式を組み合わせた、いくつかのタイトル オプションを示します。 直接的かつ簡潔: * Google App Engine Datastore (Go) で ID 配列でクエリを実行するにはどうすればよいですか? * データストア Qの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。