node.js - Mongoose Paginate 获取带有特定文档的页面
问题描述
我目前正在构建一个填充有 mongoose-paginate 的项目列表。该列表可针对不同的列进行排序,并且分页也可以正常工作。现在我想添加一个功能,您可以在其中选择列表中的项目,使用列表,您的项目仍将被选中,您将位于包含您项目的页面上。
示例:我有一个邮件列表并按日期排序,选择最近的邮件并按地址排序。按地址排序后,我希望应用程序转到我选择的邮件所在的页面,而不是第一页。
有没有我可以用来查找哪个页面包含某个 _id 或直接获取该页面的功能?
其他想法:
- 通过遍历页面来探测_id,直到我找到正确的
- 查找给定 _id 在完整数据集中的位置并计算页面
第一个的性能显然是一场灾难,第二个选项要好一些,但我仍然需要至少加载整个排序数据集的 _ids。
当前代码:
async function getInbox(limit = 50, offset = 0, sortBy = "date", sortOrder = -1) {
const options = {
sort: { [sortBy]: sortOrder },
collation: { locale: "de" },
offset: offset,
limit: limit,
select: "_id to cc folder subject from date"
};
return await Mail().paginate({ folder: "Inbox" }, options);
}
解决方案
推荐阅读
- azure - 错误:为机器学习服务 Workpsace 部署 Azure ARM 模板时,“确保使用支持 MSI 的客户端创建工作区”
- javascript - 使用 CropperJS 旋转合适的画布
- ubuntu - 什么是 headless_lib.pak?是否应该将无头库复制到 AArch64 设备?
- javascript - 如何解决 jquery 子方法警报错误?
- python - 运行本地 mlflow 服务器时出错
- python - 基本 Python - SyntaxError:解析时意外 EOF - if 语句
- unix - 为 IBM AIX 显示每个文件系统驻留在哪些 hdisk 上的脚本
- javascript - 动态注释掉 CSS 样式表?
- python - 如何在 Keras EarlyStopping 中使用百分比增量?
- sql - TSQL,删除具有相同instanceID的一批行,但具有特定条件的行除外