首页 > 解决方案 > 使用github.com/icza/minquery直接查询page 3值

问题描述

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

标签: mongodbgomgo

解决方案


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

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

想想 GMail:您总是可以跳到电子邮件的下一页(和上一页),但您无法“神奇地”跳到第 10 或第 100 页:GMail 在后台使用相同的机制。


推荐阅读