App Engine データストアでは、整数のスライスを使用した "IN" クエリの実行は、フィルター機能。ただし、同様の機能を実現するために、いくつかのアプローチを使用できます。
1 つのオプションは、整数スライス内の要素ごとに個別のクエリを作成することです。このアプローチは、要素の数が比較的少ない場合に適しています。
<code class="go">ids := []int64{1, 2, 3, 4} var q datastore.Query for _, id := range ids { q = q.Filter("Id =", id) }</code>
整数スライス内の要素が連続範囲を表す場合、次のことができます。範囲演算子 (>= および <=) を使用して IN フィルターを置き換えます。
<code class="go">ids := []int64{1, 2, 3, 4} q := datastore.NewQuery("Category"). Filter("Id >=", 1). Filter("Id <=", 4)</p> <h3>アプローチ 3: キー IN クエリの GetMulti</h3> <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>
注:
複数のエンティティを使用する 2 番目のアプローチフィルター呼び出しが正しく機能しません。この方法で複数のフィルターを適用すると、論理 AND 接続が作成され、すべての条件を同時に満たすエンティティは存在しない可能性があります。
以上がGo を使用して Google App Engine データストアで整数スライスを使用して「IN」クエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。