是否可以从谷歌应用引擎数据库中选择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()
解决方法:
否虽然app引擎支持“IN”查询,但它不支持“NOT IN”查询.
但是,如果您不想要的实体列表很小,那么您也可以只检索每个实体并过滤掉您自己不需要的实体.
或者,如果要排除的实体列表是所有实体的很大一部分,那么上述解决方案效率会相当低.相反,也许您可以为模型添加一个额外的属性,您可以使用它来过滤掉您不想要的实体(这是否可能取决于您的特定需求和数据).