【问题标题】:Google App Engine NDB Query end_cursorGoogle App Engine NDB 查询 end_cursor
【发布时间】:2015-06-27 21:19:24
【问题描述】:

在查询类https://cloud.google.com/appengine/docs/python/ndb/queryclass end_cursor 的文档中被描述为搜索的终点。我没有找到任何示例代码如何使用它。由于 start_cursor 参数用于返回下一个 X 值,直觉上我虽然可以使用 end_cursor 来返回以前的 X 值,但它不是那样工作的。因此,如果有人有这方面的经验并且可以解释,提供一些用例,我就在徘徊。

【问题讨论】:

  • StackOverflow 喜欢可以回答的问题,因为它们不太宽泛或笼统。我建议将您的问题编辑得更具体一些。这将增加获得满意答案的几率。
  • 也许你想要的是反转光标。 cloud.google.com/appengine/docs/python/ndb/queries#cursors
  • 感谢@marcadian 的回复,我知道了,我只是不明白 end_cursor 参数有什么好处,可以用来做什么。

标签: google-app-engine google-cloud-datastore app-engine-ndb


【解决方案1】:

数据存储游标是指向结果集中特定位置的指针。

因此,在与查询匹配的 1,000 条记录的结果集中,当您发出带有“LIMIT 100”子句的查询时,响应中返回的结束游标可用于获取接下来的 100 条记录(或者无论您有多少条记录)喜欢)。

所以,如果您发出查询。开始和结束光标,你会得到这些光标之间的结果。

与仍然必须“滚动”通过 300 条记录的“LIMIT 200, 100”样式查询相比,游标非常划算。

【讨论】:

  • 是的,我同意你写的。由于 start_cursor 参数可以像 objects, next_cursor, more = MyModel.query().fetch_page(10, start_cursor=cursor) 一样使用来获取接下来的 10 个对象,我认为 end_cursor 可以像 objects, next_cursor, more = MyModel.query().fetch_page(10, end_cursor=cursor) 一样使用,它会在光标之前返回 10 个对象,但显然它不是那样工作的。
  • 这样使用时,无论光标指向哪里,它都会从查询的开头返回实体。
  • 我希望你总是需要一个有效的开始光标
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多