Question

Est-il possible de choisir parmi un moteur app google db où la clé d'un objet db.Model n'est pas dans une liste donnée? Si oui, quelle serait la syntaxe?

Ex d'une classe de modèle:

class Spam(db.Model):
    field1 = db.BooleanProperty(default=false)
    field2 = db.IntegerProperty()

Exemple d'une requête que je voudrais travailler mais ne peut pas comprendre:

spam_results = db.GqlQuery(
"SELECT * FROM Spam WHERE key NOT IN :1 LIMIT 10", 
['ag1waWNreXByZXNlbnRzchMLEgxBbm5vdW5jZW1lbnQYjAEM', 
 'ag1waWNreXByZXNlbnRzchMLEgxBbm5vdW5jZW1lbnQYjgEM'])

for eggs in spam_results:
  print "id: %s" % a.key().id()
Était-ce utile?

La solution

Non Bien que le moteur application prend en charge une requête "IN", il ne supporte pas "NOT IN" requête.

Cependant, si votre liste d'entités que vous ne pas est petit voulez, alors vous pourriez tout aussi bien récupérer tous entité et filtrer ceux que vous n'avez pas besoin vous.

Par ailleurs, si la liste des entités que vous voulez exclure est une grande partie de toutes les entités, la solution ci-dessus serait plutôt inefficace. Au lieu de cela, peut-être que vous pourriez ajouter une propriété supplémentaire à votre modèle que vous pouvez utiliser pour filtrer les entités que vous ne voulez pas (ou non cela est possible dépendra de vos besoins spécifiques et des données).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top