Google App Engine 或查询(Python)
有没有人能分享一下在应用引擎中如何做“或”查询的方法?
假设我有
class A_db_model(db.Model):
valueA = db.ListProperty(basestring)
在valueA中,我有
aaa
aaa, bbb
bbb
ccc
我想要的结果是,如果valueA匹配'aaa'或'bbb',就返回结果,并且不重复。
2 个回答
2
@Amber的方法有两个主要问题:首先,它运行得很慢,因为每个值背后都要进行一次查询;其次,它最多只能查询30个值。我刚写了一篇关于这个问题的博客文章,里面解释了在应用引擎中进行OR查询的最佳可扩展方法。你可以使用一个单独的实体来实现这个功能。具体细节可以查看那篇文章。
http://tornblue.com/post/11310830291/app-engine-how-to-do-an-efficient-or-query
6
试试这个?
A_db_model.all().filter('valueA IN', ['aaa', 'bbb'])
或者用等效的GQL:
GqlQuery('SELECT * FROM A_db_model WHERE valueA IN :1', ['aaa', 'bbb'])