Pregunta

¿Es posible elegir entre un motor de base de Google App donde la clave de un objeto db.Model no está en una lista dada? Si es así, ¿cuál sería la sintaxis?

Ex de una clase de modelo:

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

Ejemplo de una consulta que me gustaría trabajo, pero no puedo averiguar:

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()
¿Fue útil?

Solución

A pesar de motor de aplicación No se admite una consulta "IN", que no es compatible con un "NO EN" consulta.

Sin embargo, si su lista de entidades que no falta es pequeño, entonces puede ser que también acaba de recuperar todos entidad y filtrar los que no lo hacen necesitará usted mismo.

Por otra parte, si la lista de entidades que desea excluir es una gran parte de todas las entidades, a continuación, la solución anterior sería bastante ineficiente. En su lugar, tal vez usted podría agregar una propiedad adicional a su modelo que se puede utilizar para filtrar las entidades que no desee (si es o no es posible dependerá de sus necesidades específicas y datos).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top