2010-03-10 3 views

Répondre

3

Il n'y a aucun moyen de le faire efficacement dans App Engine. Vous devez simplement sélectionner tout sans ce filtre et filtrer les entités correspondantes dans votre code.

1

Ceci est maintenant pris en charge par GQL requête

Le « IN » et « ! = » Opérateurs dans le moteur d'exécution Python sont en fait mises en œuvre dans le SDK et se traduisent par de multiples requêtes "sous le capot .

Par exemple, la requête "SELECT * FROM personnes WHERE nom IN ('Bob', 'Jane')" se traduit en deux requêtes, ce qui équivaut à l'exécution "SELECT * FROM personnes WHERE nom = 'Bob'" et "SELECT * FROM People OERE name = 'Jane'" et fusionnant les résultats. La combinaison de plusieurs disjonctions multiplie le nombre de requêtes nécessaires, de sorte que la requête "SELECT * FROM People WHERE nom IN ('Bob', 'Jane') AND age! = 25" génère un total de quatre requêtes, pour chacune des conditions possibles (l'âge est inférieur ou supérieur à 25, et le nom est 'Bob' ou 'Jane'), puis les fusionne en un seul ensemble de résultats.

source: appengine blog

Questions connexes