来自:
https://github.com/edwardhotchkiss/mongoose-paginate
拷贝如下:
Note: This plugin will only work with Node.js >= 4.2 and Mongoose >= 4.2 Installation npm install mongoose-paginate Usage Add plugin to a schema and then use model paginate method: var mongoose = require('mongoose'); var mongoosePaginate = require('mongoose-paginate');
var schema = new mongoose.Schema({ /* schema definition */ }); schema.plugin(mongoosePaginate);
var Model = mongoose.model('Model', schema); // Model.paginate() Model.paginate([query], [options], [callback]) Parameters
Return value Promise fulfilled with object having properties:
Examples Skip 20 documents and return 10 documents Model.paginate({}, { page: 3, limit: 10 }, function(err, result) { // result.docs // result.total // result.limit - 10 // result.page - 3 // result.pages }); Or you can do the same with offset and limit: Model.paginate({}, { offset: 20, limit: 10 }, function(err, result) { // result.docs // result.total // result.limit - 10 // result.offset - 20 }); With promise: Model.paginate({}, { offset: 20, limit: 10 }).then(function(result) { // ... }); More advanced example var query = {}; var options = { select: 'title date author', sort: { date: -1 }, populate: 'author', lean: true, offset: 20, limit: 10 };
Book.paginate(query, options).then(function(result) { // ... }); Zero limit You can use limit=0 to get only metadata: Model.paginate({}, { offset: 100, limit: 0 }).then(function(result) { // result.docs - empty array // result.total // result.limit - 0 // result.offset - 100 }); Set custom default options for all queries config.js: var mongoosePaginate = require('mongoose-paginate');
mongoosePaginate.paginate.options = { lean: true, limit: 20 }; controller.js: Model.paginate().then(function(result) { // result.docs - array of plain javascript objects // result.limit - 20 }); Tests npm install npm test |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2016-11-03 解决错误 Cannot await in the body of a catch clause