首页 > 解决方案 > Mongoose Paginate 获取带有特定文档的页面

问题描述

我目前正在构建一个填充有 mongoose-paginate 的项目列表。该列表可针对不同的列进行排序,并且分页也可以正常工作。现在我想添加一个功能,您可以在其中选择列表中的项目,使用列表,您的项目仍将被选中,您将位于包含您项目的页面上。

示例:我有一个邮件列表并按日期排序,选择最近的邮件并按地址排序。按地址排序后,我希望应用程序转到我选择的邮件所在的页面,而不是第一页。

有没有我可以用来查找哪个页面包含某个 _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);

}

标签: node.jsmongodbmongoosepagination

解决方案


推荐阅读