我在 mongoDB 中存储了数十万条数据。我正在使用 NodeJS Rest api 和 mongoose 来检索数据。
我使用 MongooseSchema.find() 从数据库获取数据。它工作正常。但问题是我要在 Angular 中显示数据列表。我当时不需要几十万条数据。有没有办法在每个请求中检索 50 个数据,在另一个请求中检索另外 50 个数据?
示例:
如果向下滚动结束,我们必须调用 api 来获取另一组 20 条数据来显示,如何显示前 20 条数据?
最佳答案
我建议使用.limit()和 .skip()并向您的 API 端点添加分页。
Limit 限制返回的文档数量,而skip 则跳过给定数量的文档。通常,它与 .sort()
一起使用,以给定顺序返回文档,例如它们的创建日期时间。
Model.find(...).sort(...).limit(req.query.limit).skip(req.query.skip).exec(function(error, docs) {});
分页示例:
您的应用发送请求(例如 GET/api/users?limit=20&skip=0
)以获取前 20 个。
然后它发送一个请求,例如 GET/api/users?limit=20&skip=20
以获取下一个 20。
关于node.js - 使用 Node JS 和 Mongoose 进行分页从 MongoDB 检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57939132/