【问题标题】:How to implement 'OR' in Google App Engine datastore filters with Python?如何使用 Python 在 Google App Engine 数据存储过滤器中实现“或”?
【发布时间】:2016-04-10 15:48:28
【问题描述】:
我在 Java 中找到了一个早期线程,但在 Python 中找不到任何东西:App Engine datastore does not support operator OR
我想用两个过滤器过滤我的查询数据,但它们是“或”关系,例如filter('privacy =', True) OR filter('user =', current_user)。我如何在 Python 中做到这一点?
如果我不能,我有什么更好的选择来手动实现它?我尝试获取两个单独的列表并手动加入它们,但是我必须维护两个游标并且不确定这是否是性能方面的最佳方式。
谢谢!
【问题讨论】:
标签:
python
google-app-engine
filter
google-cloud-datastore
【解决方案1】:
ndb documentation 描述了如何使用ndb.OR 实现 OR 查询
例如
qry = MyModel.query(ndb.OR(MyModel.name == 'foo', MyModel.name == 'bar')
【解决方案2】:
对于 OR,您可以使用:
query = Model.query(ndb.OR(Model.A ==1,Model.B==1))
类似地:
query = Model.query(ndb.AND(Model.A==2,Model.B==2))