Maison  >  Article  >  développement back-end  >  Comment exécuter des requêtes \"IN Array\" dans la banque de données Google App Engine avec Go ?

Comment exécuter des requêtes \"IN Array\" dans la banque de données Google App Engine avec Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 02:52:02957parcourir

How to Execute

Exécution de requêtes "IN Array" dans Google App Engine Datastore avec Go

Exécution d'une requête "IN Array", où plusieurs valeurs sont vérifiées pour une propriété spécifique dans Datastore , nécessite une approche différente dans Go en raison du manque de support natif pour ce type de requête.

1. Requêtes séquentielles

Une option consiste à exécuter des requêtes distinctes pour chaque élément du tableau sur lequel vous souhaitez filtrer. Par exemple :

<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. Plage continue (uniquement pour les tableaux continus)

Si les éléments du tableau forment une plage continue, vous pouvez utiliser les opérateurs >= et <= pour remplacer le filtre "IN". Par exemple :

<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>Si la propriété à filtrer est la clé d'entité elle-même, vous pouvez récupérer une liste d'entités basée sur un tableau de leurs clés à l'aide de la fonction 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>

Remarque : N'oubliez pas que les filtres composés utilisant AND peuvent renvoyer des résultats inattendus, car plusieurs filtres seront appliqués logiquement en tant que tels.

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!

Déclaration:
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