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