使用github.com/icza/minquery直接查询第3页的值

时间:2018-10-16 03:01:21

标签: mongodb go mgo

我想确认使用minquery,1. foreach skip,获取1,2,3页面数据,然后返回第三个值的正确方法来获取skip(3)值?或2.使用一种方法来获取skip(3)的光标。如果第二个是正确的,如何获取skip(3)页面的光标?谢谢。

1 个答案:

答案 0 :(得分:1)

您不能使用github.com/icza/minquery直接跳过文档。 minquery的目的是不必使用Query.Skip()(因为随着“可跳过”文档数量的增加,效率降低)。跳过3个文档的唯一方法是查询3个以上的文档,然后丢弃前3个文档。

minquery用于无需跳过初始文档的情况。 minquery要求您遍历文档,并获取对最后返回的文档的索引条目进行编码的游标(MinQuery.All()返回给您的游标)。当需要下一页时,您必须使用在上一个查询中获取的光标,然后它可以列出后续文档而不必跳过任何内容,因为可以使用编码索引条目直接跳到上一个查询完成列表的位置文档。

GMail的思考:您始终可以仅跳到电子邮件的下一个(和上一个)页面,但是无法“神奇地”跳到第10或第100页:GMail使用相同的机制。