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