我们正在使用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/