1.0.3 • Published 9 years ago

koa-mongoose-pagination v1.0.3

Weekly downloads
1
License
-
Repository
github
Last release
9 years ago

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.