如何有效地查询对某个属性具有任何值的数据存储区实体?

时间:2014-03-25 09:56:40

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

我有以下型号

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

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

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

但是如何使用名称查询用户实体,而不使用!=无?

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

2 个答案:

答案 0 :(得分:3)

您可以搜索所有名称> “”

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

答案 1 :(得分:1)

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