我可能存储了数千个“报告”模型。我正在尝试通过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个,那么我将按正确的顺序对所有报告进行排序。
答案 0 :(得分:3)
您的查询按received_time
的递增顺序排序,因此您可以获得较早时间(较短时间=较早时间)的查询。要获得最旧的订单,请更改订单:
.order(-Report.received_time)