python - 如何使用 NDB 获取 Google App Engine 中的 N 个最新模型?

标签 python google-app-engine google-cloud-datastore app-engine-ndb

我可能存储了数千个“报告”模型。我正在尝试获取按 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 个报告,则所有报告都会按正确的顺序排序。

最佳答案

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

.order(-Report.received_time)

关于python - 如何使用 NDB 获取 Google App Engine 中的 N 个最新模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19260899/

相关文章:

python - 通过 id 删除 Python 列表中的重复项

python - 如何构建简单的神经网络来判断来自不同空间的两个嵌入是否属于同一类

python-2.7 - gcloud 在 gcloud app deploy 中崩溃(SSLHandshakeError)

java - 运行您自己的 GAE 服务器

python - 迭代 pandas 中的列,并动态更改其值,直到找到新的值 [Pandas]

python - 使用 app.yaml 将单个静态文件上传到 GAE

google-app-engine - AppEngine/数据存储 : Best way to retrieve since ancestor query returns everything recursively

google-app-engine - App Engine go context.Context 没有命名空间

google-app-engine - Google Cloud Platform 上的 ndb 查询间歇性地返回任何内容

python - 在 MultiIndex 上使用 between_time()?