1

假设我有一个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,我的开发环境目前无法正常工作。

4

1 回答 1

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)]

于 2012-04-02T03:45:35.707 回答