有人可以分享您在app-engine中执行'或'查询的方法吗?
我说我有
class A_db_model(db.Model):
valueA = db.ListProperty(basestring)
in valueA我有
aaa
aaa, bbb
bbb
ccc
如果值a匹配'aaa'或'bbb'并返回不重复的结果,我想返回结果。
答案 0 :(得分:6)
试试这个?
A_db_model.all().filter('valueA IN', ['aaa', 'bbb'])
或等效的GQL:
GqlQuery('SELECT * FROM A_db_model WHERE valueA IN :1', ['aaa', 'bbb'])
答案 1 :(得分:2)
@ Amber方法的两个主要问题是它很慢,因为它基本上对幕后的每个值运行一个查询,并且最多可以查询30个值。我刚写了一篇关于这个问题的博文。它解释了基本上使用app引擎进行OR查询的最佳可扩展方式。您可以使用单独的实体来实现此目的。有关详细信息,请参阅帖子。
http://tornblue.com/post/11310830291/app-engine-how-to-do-an-efficient-or-query