NDB按StructuredProperty的属性排序

时间:2012-04-01 16:30:44

标签: python google-app-engine app-engine-ndb

假设我有一个ndb.Model类,我想在另一个模型类中用作StructuredProperty

class CommonExtraData(ndb.Model):
    count = ndb.IntegerProperty(required=True)

class MyObject(ndb.Model):
    name = ndb.StringProperty(required=True)
    extra = ndb.StructuredProperty(CommonExtraData, required=True)

我可以这样做一个查询:

MyObject.query().order(-MyObject.extra.count)

我在文档中找不到一个示例,由于我努力从旧API重构到NDB,我的开发环境目前无法正常工作。

1 个答案:

答案 0 :(得分:4)

刚刚进行了一些实验,它似乎正在起作用。你应该能够像你写出的那样完全一样。

在实验中,我发现了一个应该注意的怪癖 - 如果你使用重复属性,它似乎只对重复属性的第一个实例进行排序。例如,如果您的重复属性具有[CommonExtraData(count = 5),CommonExtraData(count = 1)]而另一个具有[CommonExtraData(count = 7),CommonExtraData(count = 2)],则它将如下排序:

[CommonExtraData(count = 7),CommonExtraData(count = 2)] [CommonExtraData(count = 5),CommonExtraData(count = 1)]