来自 Google App Engine 文档:
“cursor() 返回一个 base64 编码的光标字符串,表示查询结果集中检索到的最后一个结果之后的位置。”
如果检索到的最后一个结果是查询集中的最后一个结果,它会返回什么?这是否意味着没有位置可以“跟随”检索到的最后一个结果?因此,是否返回“无”?
来自 Google App Engine 文档:
“cursor() 返回一个 base64 编码的光标字符串,表示查询结果集中检索到的最后一个结果之后的位置。”
如果检索到的最后一个结果是查询集中的最后一个结果,它会返回什么?这是否意味着没有位置可以“跟随”检索到的最后一个结果?因此,是否返回“无”?
即使检索到最后一个结果,仍然有一个游标。无论如何,查询类都不知道这一点:它知道你已经拥有了什么,但它不知道还有什么即将到来。游标不代表任何实际结果,它只是稍后恢复查询的一种方式。事实上,即使在初始查询中到达数据集末尾的情况下,也可以使用游标,但以后的更新意味着现在在后续请求中找到新项目:例如,如果您正在订购到最后更新时间。
(好用户名,顺便说一句:一定要喜欢一些 PKD。)
如果所有结果都已消耗,则光标仅指向该位置。
换句话说,如果您要向数据存储添加更多项目,光标指向新结果将出现的位置。从数据存储查询文档中:
游标在查询的索引中标记一个位置,从该位置开始下一次扫描结果。因此,它不表示查询结果列表中的相对偏移量,而是表示特定结果之后的位置。如果查询的结果在使用游标之间发生变化,那么只有索引中游标位置之后的那些变化才会影响后续检索的结果。
该cursor()
方法永远不会返回None
。