Maison >développement back-end >Golang >Comment exécuter des requêtes \'IN Array\' dans la banque de données Google App Engine 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.
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>
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!