0

我正在尝试查询对给定重复属性没有值的所有对象。

例如,假设您有以下模型:

class Foo(ndb.Model):
    bar = ndb.IntegerProperty(repeated=True)

并且您想要所有 Foo 的实例,其中 bar 没有值,或者是 []。您将如何执行此查询或解决此问题?

注意(来自 GAE 的 ndb 文档):

在重复属性上查询 None 值具有未定义的行为;不要那样做

4

1 回答 1

1

好吧,就像文档说的那样,你不能。

解决此问题的一种方法可能是在模型上保留另一个属性,该属性记录它在 bar 中有多少值。您需要在保存实体时更新它:一个好方法是在调用超类方法之前覆盖put()to do 。self.bar_count = len(self.bars)

当然,您需要通过现有数据来设置计数;你可能想使用映射器来做到这一点。

于 2015-01-19T18:34:28.373 回答