我正在尝试查询对给定重复属性没有值的所有对象。
例如,假设您有以下模型:
class Foo(ndb.Model):
bar = ndb.IntegerProperty(repeated=True)
并且您想要所有 Foo 的实例,其中 bar 没有值,或者是 []。您将如何执行此查询或解决此问题?
注意(来自 GAE 的 ndb 文档):
在重复属性上查询 None 值具有未定义的行为;不要那样做
我正在尝试查询对给定重复属性没有值的所有对象。
例如,假设您有以下模型:
class Foo(ndb.Model):
bar = ndb.IntegerProperty(repeated=True)
并且您想要所有 Foo 的实例,其中 bar 没有值,或者是 []。您将如何执行此查询或解决此问题?
注意(来自 GAE 的 ndb 文档):
在重复属性上查询 None 值具有未定义的行为;不要那样做
好吧,就像文档说的那样,你不能。
解决此问题的一种方法可能是在模型上保留另一个属性,该属性记录它在 bar 中有多少值。您需要在保存实体时更新它:一个好方法是在调用超类方法之前覆盖put()
to do 。self.bar_count = len(self.bars)
当然,您需要通过现有数据来设置计数;你可能想使用映射器来做到这一点。