mongodb - 使用github.com/icza/minquery直接查询page 3值
问题描述
我想确认使用 minquery 获取 skip(3) 值的正确方法,1. foreach 跳过,获取 1,2,3 页面数据,然后返回第三个值?或者 2. 使用一种方法来获取 skip(3) 的光标。如果第二个是正确的,如何获得 skip(3) 页面的光标?谢谢。
解决方案
您不能直接使用 跳过文档github.com/icza/minquery
。的目的minquery
是不必使用Query.Skip()
(因为当“可跳过”文档的数量增加时,效率会降低)。跳过 3 个文档的唯一方法是查询超过 3 个,并丢弃前 3 个。
minquery
适用于您不必跳过初始文档的情况。minquery
要求您遍历文档,并获取对最后返回文档的索引条目进行编码的游标(此游标由 返回给您MinQuery.All()
)。当你需要下一页时,你必须使用你在上一个查询中获得的游标,然后它可以列出后续文档而不必跳过任何内容,因为编码的索引条目可以用来跳转到最后一个查询完成列出的地方文件。
想想 GMail:您总是可以跳到电子邮件的下一页(和上一页),但您无法“神奇地”跳到第 10 或第 100 页:GMail 在后台使用相同的机制。
推荐阅读
- c++ - 如何从静态 c 和 c++ 库创建共享 c 库?
- java - 检测并从 JSON 对象中删除冗余节点,节省核心结构
- c++ - 在链接的程序集文件中,我想从 C++ 调用代码中访问一个变量。可以在不触发访问冲突的情况下执行此操作吗?
- c++ - C++ 默认复制构造函数不可行
- python - 如何在散点图上映射鼠标位置?
- mysql - 如何为 go-sqlmock 正确设置 Mock Row 和 Query
- c# - 为什么我的视图将空数据发布到控制器
- javascript - 根据数据库中的值动态设置背景颜色
- mongodb - 通过 mongodb vs 授权令牌中的字段授权资源(例如图像)访问?
- firebase - 多次上传 Vue / firebase 时出错(未定义或空引用)