Come costruire GQL di non contenere un valore da un insieme?
-
25-09-2019 - |
Domanda
E 'possibile scegliere tra un db Google App Engine in cui la chiave di un oggetto db.Model
non è in una data lista? Se così fosse, quale sarebbe la sintassi?
Ex di una classe del modello:
class Spam(db.Model):
field1 = db.BooleanProperty(default=false)
field2 = db.IntegerProperty()
Esempio di una domanda che mi piacerebbe lavorare, ma non riesco a capire:
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()
Soluzione
No Anche se il motore applicazione supporta una query "IN", che non supporta una "NOT IN" query.
Tuttavia, se l'elenco delle entità che si non desiderio è piccolo, allora si potrebbe anche solo recuperare tutti entità e filtro fuori quelli che non lo fai bisogno di te.
In alternativa, se l'elenco delle entità che si desidera escludere è una grande frazione di tutte le entità, allora la soluzione di cui sopra sarebbe piuttosto inefficiente. Invece, forse si potrebbe aggiungere una proprietà aggiuntiva al modello che si potrebbe usare per filtrare le entità che non si desidera (anche questo è possibile dipenderà vostre esigenze specifiche e dati).