Google app engine or query (python)

2019-06-25 10:40发布

Can anyone share your approach for doing a 'or' query in app-engine?

Let say I have

class A_db_model(db.Model):
 valueA = db.ListProperty(basestring)

in valueA I have

aaa
aaa, bbb
bbb
ccc

I would like to return result of if the valueA match 'aaa' or 'bbb' and return not duplicated result.

2条回答
该账号已被封号
2楼-- · 2019-06-25 10:42

The two main problems with @Amber's approach is that it is slow as it basically runs a query for each value behind the scenes and it maxes out at 30 values to query for. I just wrote a blog post about this question. It explains the best scalable way to basically do an OR query with app engine. You can use a separate entity to make this happen. See the post for details.

http://tornblue.com/post/11310830291/app-engine-how-to-do-an-efficient-or-query

查看更多
贼婆χ
3楼-- · 2019-06-25 10:57

Try this?

A_db_model.all().filter('valueA IN', ['aaa', 'bbb'])

or the equivalent GQL:

GqlQuery('SELECT * FROM A_db_model WHERE valueA IN :1', ['aaa', 'bbb'])
查看更多
登录 后发表回答