2

来自 Google App Engine 文档:

“cursor() 返回一个 base64 编码的光标字符串,表示查询结果集中检索到的最后一个结果之后的位置。”

如果检索到的最后一个结果是查询集中的最后一个结果,它会返回什么?这是否意味着没有位置可以“跟随”检索到的最后一个结果?因此,是否返回“无”?

4

2 回答 2

3

即使检索到最后一个结果,仍然有一个游标。无论如何,查询类都不知道这一点:它知道你已经拥有了什么,但它不知道还有什么即将到来。游标不代表任何实际结果,它只是稍后恢复查询的一种方式。事实上,即使在初始查询中到达数据集末尾的情况下,也可以使用游标,但以后的更新意味着现在在后续请求中找到新项目:例如,如果您正在订购到最后更新时间。

(好用户名,顺便说一句:一定要喜欢一些 PKD。)

于 2012-11-06T14:17:21.390 回答
3

如果所有结果都已消耗,则光标仅指向该位置。

换句话说,如果您要向数据存储添加更多项目,光标指向新结果将出现的位置。数据存储查询文档中:

游标在查询的索引中标记一个位置,从该位置开始下一次扫描结果。因此,它不表示查询结果列表中的相对偏移量,而是表示特定结果之后的位置。如果查询的结果在使用游标之间发生变化,那么只有索引中游标位置之后的那些变化才会影响后续检索的结果。

cursor()方法永远不会返回None

于 2012-11-06T14:20:33.787 回答