1.0.3 • Published 10 years ago
koa-mongoose-pagination v1.0.3
koa-mongoose-pagination
Mongoose ORM (NodeJS/MongoDB) Document Query Pagination using generators (Koa compatible)
To be used in combination with view pagination middleware such as express-paginate.
Based on mongoose-paginate by edwardhotchkiss.
This version uses generators and it's compatible with Koa framework.
Examples uses let instead of var. Feel free to use whatever fits you. Remember to use strict mode.
Installation
npm install -S koa-mongoose-paginationUsage
'use strict';
let koaMongoosePagination = require('koa-mongoose-pagination');
MyModel.plugin(koaMongoosePagination);/*
* basic example usage of `koa-mongoose-pagination`
* paginating by second page, 10 items per page (10 results, page 2)
*/
'use strict';
const resultsPerPage = 10;
const currentPage = 2; // You should use this.query.page here
const { data, count } = yield MyModel.paginate({
conditions: { 'status': true }, // Only enabled items
columns: '_id name', // Retrieve only those columns
sortBy: { '_id': -1 }, // Sort by _id DESC
limit: resultsPerPage,
offset: (currentPage * resultsPerPage) - resultsPerPage
});
console.log(data); // Results from the paginated set
console.log(count); // Total results in the queryNOTE: You need Babel (or any other transpiler) to make use of variable destructuring (const { data, count } = ...). With Babel, simply install babel package and require the hook in your main app.js:
require('babel/register');Default options
- Conditions:
{}. - Columns:
null. - SortBy:
{ _id: -1 }. - Limit:
10. - Offset:
0.
Error handling
In Koa, you can use try/catch to manage the errors.