1

我可能存储了数千个“报告”模型。我正在尝试获取由 DateTimeProperty 排序的 50 个最新报告。尽管我现有的查询确实按从新到旧的顺序获取报告,但它不会返回最新的50 个。而是返回一个较旧的(排序的)选择。我在这里想念什么?

class Report(ndb.polymodel.PolyModel):
    received_time = ndb.DateTimeProperty(required=True, auto_now_add=True)
    report_state = ndb.StringProperty(choices=set(['unresolved', 'resolved']))

...

reports_query = Report.query(
    Report.report_state == 'resolved',
    ancestor = some_key) \
    .order(Report.received_time)
resolved_reports = reports_query.fetch(50)

当我在测试时,如果我的数据存储中有 200 个报告并且我获取了 200 个,我将按照正确的顺序对所有报告进行排序。

4

1 回答 1

3

您的查询按 的递增顺序排序received_time,因此您将获得时间较早的那些(较小的时间 = 较旧的时间)。要获取最旧的,请更改顺序:

.order(-Report.received_time)
于 2013-10-09T06:13:11.693 回答