koa-mongoose-pagination
v1.0.3
Published
Mongoose ORM (NodeJS/MongoDB) Document Query Pagination using generators (Koa compatible)
Downloads
3
Maintainers
Readme
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-pagination
Usage
'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 query
NOTE: 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.