javascript - 如何在 Mongoose 中分页而不重复?

标签 javascript node.js mongodb mongoose

我正在为我的网站构建一个 API(使用 Node.js 和 Mongoose),并且我想在其中合并分页。我的问题如下:如果页面大小例如为 15,并且我对第一页发出请求,那么它会向我发送按创建日期排序的前 15 个项目,但是如果在我对第二页发出请求之前,在数据库中创建了 15 个新项目,那么如果我只在 mongoose 上使用 Skip,返回的数据将与之前相同。

有没有办法避免 Mongoose 的双倍呢?我现在所拥有的是查询中的“排除”参数,因此它排除了所有已加载的项目,但我想如果有很多加载的项目,URL 可能会很长,我不确定这是一件好事......

是否有更好的方法来做到这一点,还是我必须冒着获得双倍隆的风险而放弃它?

最佳答案

您可以使用mongoose-paginate-v2

为了防止返回的文档出现重复,您可以传递(最后一个文档 ID 和限制)

你的查询应该是这样的:

import { PaginateModel } from 'mongoose-paginate-v2';

constructor(
private readonly _paginateModel: PaginateModel<any>
  ) {}

const query = this._paginateModel
          .find({ _id: { $lt: lastId } });
    this._paginateModel.paginate(query, { limit: 10 });

关于javascript - 如何在 Mongoose 中分页而不重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36949887/

相关文章:

javascript - 原型(prototype)对象/方法代码 - 不显示在控制台上

javascript - jQuery if 语句中的多个条件

javascript - 使快速端点异步

php mongodb - 无法让 upsert 工作

javascript - 我想在每个 'DotsDiv' 元素中添加这个 'domino' 元素

javascript - 单击按钮后添加新输入

javascript - 使用带有 promise 的 tinyreq

node.js - package.json 在 azure 上失败并出现错误 Windows_NT 6.2.9200

mongodb - Mongo 3.4+ - 带子区域的区域

mongodb - Mongodb DBRefs 有什么问题?