ホームページ  >  記事  >  バックエンド開発  >  Go を使用して Google App Engine データストアで「IN 配列」クエリを実行する方法

Go を使用して Google App Engine データストアで「IN 配列」クエリを実行する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-26 02:52:02957ブラウズ

How to Execute

Go を使用した Google App Engine データストアでの「IN 配列」クエリの実行

データストアの特定のプロパティに対して複数の値がチェックされる「IN 配列」クエリの実行、このタイプのクエリに対するネイティブ サポートがないため、Go では別のアプローチが必要です。

1.順次クエリ

1 つのオプションは、フィルタリングする配列内の要素ごとに個別のクエリを実行することです。例:

<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>

2.連続範囲 (連続配列のみ)

配列内の要素が連続範囲を形成する場合、>= および <= 演算子を使用して「IN」フィルターを置き換えることができます。例:

<code class="go">ids := []int64{1, 2, 3, 4}
q := datastore.NewQuery("Category").Filter("Id >=", 1).Filter("Id <=", 4)</p>
<h3>3. datastore.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)
if err != nil {
    return nil, err
}</code>

注: 複数のフィルターが論理的に適用されるため、AND を使用した複合フィルターは予期しない結果を返す可能性があることに注意してください。

以上がGo を使用して Google App Engine データストアで「IN 配列」クエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。