mongodb - Mongodb对象id和分页
问题描述
我不太了解周围的对象 id 比较和自然排序,特别是 -
由于每个对象 id 都大于前一个对象 id,但在同一秒内生成的 id 除外,在这种情况下无法保证哪个更大,相同范围的分页查询是否始终保证页面上的排序不会改变,假设没有那个页面上的文件被删除了?
从直觉上看,答案应该是“是”,因为每个新的 id 都会出现在后续页面上,但自然排序特别不能保证在所有条件下的顺序。
解决方案
除了文档的更新和删除,还有第三种影响自然顺序的变化:文档的增长模式。
当文档超出其初始空间分配时,它会被移动,从而修改自然顺序。这种情况甚至可能导致一个新的副作用:当插入一个新文档时,它可以存储在第一个文档留下的那个“洞”中。
因此,对于Normal Collection,您不能保证自然顺序保持不变。如果您需要依赖文档插入顺序,您应该考虑Capped Collections。
推荐阅读
- android-11 - Android 11 对话气泡通知坐标
- bazel - Bazel:如何访问文件组的 src?
- sql - SQL Server Express (localdb) 等待操作超时 - 查询随机超时?
- html - 选择选项不显示在 html 中
- kubernetes - 使用 terraform kubernetes 提供程序创建命名空间时出错
- python - 从 json 中取出键和值来分隔 pandas 中的行
- android-studio - 我使用 500 多张图片,文件夹太大。我怎样才能减少
- python - 字符串 pandas 中的正则表达式(拆分)
- r - 过滤多个分类数据
- ios - 将 Postman GET curl 转换为 swift url 会话请求