3

是否可以从db.Model对象的键不在给定列表中的谷歌应用引擎数据库中进行选择?如果是这样,语法是什么?

例如模型类:

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”查询,但不支持“NOT IN”查询。

但是,如果您想要的实体列表很小,那么您不妨只检索每个实体并过滤掉您自己不需要的实体。

或者,如果您要排除的实体列表占所有实体的很大一部分,则上述解决方案将相当低效。相反,也许您可​​以在模型中添加一个额外的属性,您可以使用它来过滤掉您不想要的实体(这是否可能取决于您的特定需求和数据)。

于 2010-09-27T20:32:56.493 回答