Sélectionner tous les enregistrements, ID qui est pas dans la listeDatastore filtrage de requêtes sur la liste
Comment faire comme:
query = Story.all()
query.filter('ID **NOT IN** =', [100,200,..,..])
Sélectionner tous les enregistrements, ID qui est pas dans la listeDatastore filtrage de requêtes sur la liste
Comment faire comme:
query = Story.all()
query.filter('ID **NOT IN** =', [100,200,..,..])
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.
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