【问题标题】: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))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 2011-05-26
        相关资源
        最近更新 更多