我已经在生产中收集了一些数据,比如说,以下模型:
class Tags(ndb.Model):
dt_added = ndb.DateTimeProperty(auto_now_add=True)
s_name = ndb.StringProperty(required=True, indexed=True)
想象一下,我现在为模型添加一个新属性:
class Foo(ndb.Model):
is_valid = ndb.BooleanProperty(default=False)
some_key = ndb.KeyProperty(repeated=True)
class Tags(ndb.Model):
dt_added = ndb.DateTimeProperty(auto_now_add=True)
name = ndb.StringProperty(required=True, indexed=True)
new_prop = ndb.StructuredProperty(Foo)
...并使用这个新模型收集更多数据。
所以现在我有一部分数据设置了属性new_prop
,另一部分没有设置。
我的问题是:如何使用新属性new_prop
未设置查询数据?
我试过了:
query_tags = Tags.query(Tags.new_prop == None).fetch()
但似乎没有设置该属性的数据...任何建议? 谢谢!
答案 0 :(得分:6)
数据存储区分不具有属性的实体和拥有具有空值的属性的实体(无)。
无法查询特定缺少给定属性的实体。另一种方法是定义一个默认值为None的固定(建模)属性,然后过滤为None的实体作为该属性的值。