Pergunta

É possível selecionar de um db de mecanismo do Google App, onde a chave de um db.Model Objeto não está em uma determinada lista? Se sim, qual seria a sintaxe?

Ex de uma classe modelo:

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

Exemplo de uma consulta que eu gostaria de trabalhar, mas não consigo descobrir:

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

Solução

Não, embora o App Engine suporte uma consulta "in", ele não suporta uma consulta "não na".

No entanto, se sua lista de entidades você não quer é pequeno, então você pode apenas recuperar todo entidade e filtra os que você não precisa.

Como alternativa, se a lista de entidades que você deseja excluir for uma grande fração de todas as entidades, a solução acima será bastante ineficiente. Em vez disso, talvez você possa adicionar uma propriedade adicional ao seu modelo que você pode usar para filtrar entidades que não deseja (se isso é possível depender ou não de suas necessidades e dados específicos).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top