Golang を使用して Google App Engine データストアで ID の配列によってエンティティを取得する方法

Barbara Streisand
リリース: 2024-10-25 17:32:44
オリジナル
470 人が閲覧しました

How to Retrieve Entities by an Array of IDs in Google App Engine Datastore using Golang?

Golang を使用した ID の配列を持つエンティティのデータストアのクエリ

Google App Engine データストアでは、「 IN" クエリを使用して、ID の配列に基づいてエンティティを取得します。ただし、この機能を実現する別のアプローチもあります。

範囲を指定したクエリ (ID が連続している場合)

ID が連続範囲を形成している場合は、 「>」 (より大きい) および "<=" (以下) 演算子を使用して、クエリする ID の範囲を指定します。例:

<code class="go">ids := []int64{1, 2, 3, 4}
q := datastore.NewQuery("Category").Filter("Id>=", 1).Filter("Id<=", 4)</p>
<p><strong>複数のクエリを実行</strong></p>
<p>連続範囲にない ID の場合、配列内の ID ごとに個別のクエリを実行できます。これには、ID ごとに新しい Query オブジェクトを作成し、その ID でフィルタリングすることが含まれます。</p>
<pre class="brush:php;toolbar:false"><code class="go">for _, id := range ids {
    q := datastore.NewQuery("Category").Filter("Id =", id)
    // ... perform query and retrieve entities
}</code>
ログイン後にコピー

GetMulti Function

フィルタリングしているプロパティがエンティティ キーの場合それ自体では、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)
if err != nil {
    // Handle error
}</code>
ログイン後にコピー

注:

の場合Filter() メソッドを使用して複数のフィルターを指定すると、それらは AND 演算で結合されます。したがって、q.Filter("Id =", id) を使用して複数の ID でフィルターしようとすると、すべての ID が同じエンティティ内に存在しない限り、一致するエンティティが見つからない可能性があります。

以上がGolang を使用して Google App Engine データストアで ID の配列によってエンティティを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!