【问题标题】:How do I query datastore entities that have any value for a certain property efficiently?如何有效地查询对某个属性具有任何值的数据存储实体?
【发布时间】:2014-03-25 09:56:39
【问题描述】:

我有以下型号

class User(ndb.Model):
    name = ndb.StringProperty()

我可以通过以下操作查询所有没有名称的用户实体:

users_without_names = User.query(User.name == None).fetch(100)

但是如何在不使用 != None 的情况下查询具有名称的用户实体?

我还需要在另一个属性上添加另一个不等式过滤器,使用 != 将转换为等式过滤器,所以我想避免使用 !=。

【问题讨论】:

    标签: python google-app-engine app-engine-ndb


    【解决方案1】:

    你可以搜索所有的名字>“”

    users_with_names = User.query(User.name > "").fetch(100)
    

    【讨论】:

    • 如我所问,有没有不使用不等式过滤器的方法?
    【解决方案2】:

    != and IN Operations 文档中的注释警告说,没有属性的实体不会被索引。选择将被索引的sentinel value(例如“_no_name_”)并搜索它会更有效。当然,您剩余的代码必须在适当的情况下将标记值处理为空白。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多