python - ndb 数据存储查询游标和索引问题

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

我们正在使用ndb数据存储、python、标准谷歌应用引擎。我们想使用查询游标。但要使其按照 here 工作和 here ,看起来我们需要实现 datastore_model.query().order(-datastore_model.key)。

例如,在我们的查询中,我们有

teacher_model_query     = teacher_model.query(ndb.AND(
                ndb.GenericProperty('signinout_time') >= signinout_time_start, 
                ndb.GenericProperty('signinout_time') <= signinout_time_end))

teacher_query_forward = teacher_query.order(ndb.GenericProperty('signinout_time')).order(teacher__model.key)
teacher_query_reverse = teacher_query.order(-ndb.GenericProperty('signinout_time')).order(- 
 teacher__model.key)

不幸的是,这意味着我们必须为此创建一个新索引

- kind: teacher_model
  properties:
  - name: signinout_time
    direction: desc
  - name: __key__
    direction: desc

这会占用每个项目 200 个索引的限制。您能否确认我们需要 order(-datastore.model.key) 才能使查询游标反向工作?如何在不需要创建额外索引的情况下执行查询游标?

最佳答案

仅当您的应用需要在查询结果页面中向后移动的能力时,您才需要创建此类索引。例如,如果您提供页面导航功能并且允许此类导航到上一页,则这可能是需要的。

但是,如果您只是使用游标将处理负载拆分为较小的批处理,则通常不需要此类功能 - 在这种情况下,您只能朝一个方向导航。

关于python - ndb 数据存储查询游标和索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58367051/

相关文章:

java - 在谷歌驱动器中搜索文件的内容

java - Android Studio无法部署后端: Execution failed for task ':app:transformClassesWithDexForDevDebug

google-app-engine - Google App Engine 标准环境与 next/image 兼容吗?

python - 永久任务失败 : 'module' object has no attribute 'Migrate'

Python 用循环创建数据帧

python - 使用 Python 下载发送到 Gmail 的彩信电子邮件

python - 从字典和列表中删除重复元素并排序元素

python - Peewee 原子更新复杂逻辑

java - JDO - 按父级查询/链接子级(Google App Engine)?

java - 如何知道 Google AppEngine HRD 数据存储更新何时完成?