首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google数据存储:在反向查询中使用光标

问Google数据存储:在反向查询中使用光标
EN

Stack Overflow用户
提问于 2017-06-14 02:38:21
回答 1查看 513关注 0票数 0

Documentation > Datastore Queries > Limitations of cursors

  • 排序顺序 一个例外情况是,如果原始查询的最后排序顺序在__key__上。在这种情况下,您可以在反向查询中使用游标,该查询是原始查询,每个排序顺序都颠倒了。反向查询可以修改开始游标、结束游标、偏移量和限制。

虽然只有__key__可以以相反的顺序使用,但是它似乎也可以在另一个创建自定义索引的属性中使用。我在开发环境和生产环境中都试过了。

什么是“如果原始查询的最后排序顺序在__key__上的异常”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-14 13:29:26

让我用一个简单的例子来澄清这一点:

假设您有一个查询(省略游标/限制语法)-

代码语言:javascript
复制
SELECT * FROM MyEntity ORDER BY PROP1 ASC 

现在的要求是,您需要在正向和反向方向上遍历,并使用游标。

您需要做的第一件事是修改查询,使__key__作为最后一种类型-

代码语言:javascript
复制
SELECT * FROM Entity ORDER BY PROP1 ASC, __key__ ASC 

您通常可以使用游标向前遍历,但是当您需要向后遍历时,您需要通过颠倒排序顺序来执行查询。您仍然可以使用同一页上的游标。因此,查询将更改为

代码语言:javascript
复制
SELECT * FROM Entity ORDER BY PROP1 DESC, __key__ DESC

注意,我们已经将ASC结束顺序更改为DESCendng。

这将从本质上为您提供来自当前光标位置的先前记录。为了使其工作,您需要有适当的复合索引(例如,PROP1和__key__上的索引按DESC顺序排列)。当然,您也可以向排序顺序添加其他属性,或者从示例中删除PROP1,如果您对按键排序的结果很满意的话。

如果使用out 键作为最后一种类型,您将无法使用在反向顺序查询中获得的游标。这就是“例外”规则是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44534512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档