你如何在谷歌应用引擎中用NDB获取N个最新的模型?

2024-03-28 21:55:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我可能存储了数千个“报告”模型。我在找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个,那么我将按照正确的顺序对所有报表进行排序。你知道吗


Tags: reporttrue报表time排序顺序报告query
1条回答
网友
1楼 · 发布于 2024-03-28 21:55:01

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

.order(-Report.received_time)

相关问题 更多 >