Maison > développement back-end > Golang > le corps du texte

Comment effectuer des requêtes \'IN\' avec des tranches entières dans la banque de données Google App Engine avec Go ?

DDD
Libérer: 2024-10-28 04:49:30
original
510 Les gens l'ont consulté

How to Perform

Requête de tableau IN dans la banque de données Google App Engine avec Go

Dans la banque de données App Engine, l'exécution d'une requête "IN" avec une tranche d'entiers n'est pas directement prise en charge à l'aide de l'outil Fonction de filtre. Cependant, plusieurs approches peuvent être utilisées pour obtenir des fonctionnalités similaires.

Approche 1 : Requête multi-conditions

Une option consiste à créer une requête distincte pour chaque élément de la tranche entière. Cette approche convient si le nombre d'éléments est relativement petit.

<code class="go">ids := []int64{1, 2, 3, 4}
var q datastore.Query
for _, id := range ids {
    q = q.Filter("Id =", id)
}</code>
Copier après la connexion

Approche 2 : Requête de plage pour une plage continue

Si les éléments de la tranche entière représentent une plage continue, vous pouvez utilisez les opérateurs de plage (>= et <=) pour remplacer le filtre IN.

<code class="go">ids := []int64{1, 2, 3, 4}
q := datastore.NewQuery("Category").
    Filter("Id >=", 1).
    Filter("Id <=", 4)</p>
<h3>Approche 3 : GetMulti pour la requête Key IN</h3>
<p>Si la propriété filtrée est la clé d'entité , vous pouvez utiliser la fonction datastore.GetMulti() pour récupérer plusieurs entités en fonction d'un tableau de clés.</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>
Copier après la connexion

Remarque :

La deuxième approche utilisant plusieurs Le filtre des appels ne fonctionne pas correctement. L'application de plusieurs filtres de cette manière entraîne une connexion ET logique, et aucune entité ne satisfera probablement toutes les conditions simultanément.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!