GAE过滤器缺少重复属性

时间:2015-01-19 17:55:31

标签: google-app-engine google-cloud-datastore google-app-engine-python

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

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

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

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

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

  

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

1 个答案:

答案 0 :(得分:1)

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

接近这种情况的一种方法可能是在模型上保留另一个属性,记录它在条形图中的值。保存实体时需要更新它:在调用超类方法之前,一种好方法是覆盖put()self.bar_count = len(self.bars)

当然,您需要查看现有数据来设置计数;您可能希望使用mapper来执行此操作。