【问题标题】:Querying for entities with missing properties in app engine Datastore?在应用引擎数据存储区中查询缺少属性的实体?
【发布时间】:2010-07-26 03:44:20
【问题描述】:

我有一个看起来像这样的模型:

class Example (db.Model) :
 row_num = db.IntegerProperty(required=True)
 updated = db.IntegerProperty()
 ...
 ...

现在当我存储值时,我可能不会每次都为更新的属性填充值,这意味着在某些实体中它可能不存在。

我想构建一个数据存储查询,以便我可以获取所有没有属性更新集的实体实例。

我该怎么做?

附言我知道我可以设置一个默认值,然后对其进行查询。但问题是我有超过 300 万个实体,更新只会标记其中的 1%,所以我不想通过将其余的设置为 0 来浪费这么多的数据存储空间。

【问题讨论】:

    标签: database google-app-engine entity getattr


    【解决方案1】:

    在 GQL 中,没有属性值的对象无法通过对该属性的查询返回,因此如果没有默认值,您所要求的内容是不可能的。

    参考:this page 上标题为“查询永远不会返回没有过滤属性的实体”的部分。

    【讨论】:

    • 正确,因为您尝试执行的任何引用不存在字段的操作都将使用该字段上的索引,这将导致省略任何没有该值的对象字段。
    • 解决方法是为更新的属性提供默认值,并查询该值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 2015-09-04
    • 1970-01-01
    • 2014-06-12
    相关资源
    最近更新 更多