3

db.Modelオブジェクトのキーが特定のリストにないGoogleAppEngine DBから選択することは可能ですか?もしそうなら、構文は何でしょうか?

モデルクラスの例:

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

作業したいのに理解できないクエリの例:

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()
4

1 に答える 1

6

いいえアプリエンジンは「IN」クエリをサポートしていますが、「NOTIN」クエリはサポートしていません。

ただし、不要なエンティティのリストが少ない場合は、すべてのエンティティを取得して、自分で不要なエンティティを除外することもできます。

または、除外するエンティティのリストがすべてのエンティティの大部分である場合、上記のソリューションはかなり非効率的です。代わりに、モデルに追加のプロパティを追加して、不要なエンティティを除外することができます(これが可能かどうかは、特定のニーズとデータによって異なります)。

于 2010-09-27T20:32:56.493 に答える