Mongodb 使用github.com/icza/minquery直接查询第3页的值
我想确认使用minquery 1获取skip(3)值的正确方法。对于每个跳过,获取1,2,3页数据,然后返回第三个值?或2。使用一种方法获取跳过(3)的光标。如果2rd正确,如何获取跳过(3)页的光标?谢谢。您不能直接使用跳过文档。Mongodb 使用github.com/icza/minquery直接查询第3页的值,mongodb,go,mgo,Mongodb,Go,Mgo,我想确认使用minquery 1获取skip(3)值的正确方法。对于每个跳过,获取1,2,3页数据,然后返回第三个值?或2。使用一种方法获取跳过(3)的光标。如果2rd正确,如何获取跳过(3)页的光标?谢谢。您不能直接使用跳过文档。minquery的目的是不必使用(因为当“可跳过”文档的数量增加时,这种方法的效率会降低)。跳过3个文档的唯一方法是查询3个以上的文档,然后扔掉前3个 minquery适用于不必跳过初始文档的情况minquery要求您迭代文档,并获取对上一个返回文档的索引项进行编码的
minquery
的目的是不必使用(因为当“可跳过”文档的数量增加时,这种方法的效率会降低)。跳过3个文档的唯一方法是查询3个以上的文档,然后扔掉前3个
minquery
适用于不必跳过初始文档的情况minquery
要求您迭代文档,并获取对上一个返回文档的索引项进行编码的光标(此光标通过minquery.All()
返回给您)。当您需要下一页时,您必须使用在上一次查询中获取的光标,然后它可以列出后续文档而无需跳过任何内容,因为编码的索引项可以用于跳转到上一次查询完成列出文档的位置
想想GMail:你总是可以跳转到下一页(和上一页)的电子邮件,但你无法“神奇地”跳转到第10页或第100页:GMail在引擎盖下使用相同的机制。谢谢你的回答,这是否意味着,如果请求第3页,我仍然需要从第1页获取文档,2并使用第二个光标检索第3页文档?@sophiageng如果您需要第3页,您在请求第2页时应该已经有一个由minquery返回的光标,因此您只需设置该光标,就可以获得第3页的文档。如果您没有任何游标,但仍然需要第3页,则运行一个包含前3页文档的查询,丢弃前2页的文档并使用第三页。是的,我需要通过查询方法获取上一个游标,谢谢大家。还有一个问题,游标字段,因为我有访问客户查询条件来查询分页文档,如何在MongoDB中创建索引,我应该创建所有场景索引吗?@sophiageng是的,它们必须匹配。